Vulkan error VK_ERROR_DEVICE_LOST

Discussion area about developing with Ogre-Next (2.1, 2.2 and beyond)


jwwalker
Goblin
Posts: 268
Joined: Thu Aug 12, 2021 10:06 pm
Location: San Diego, CA, USA
x 19

Vulkan error VK_ERROR_DEVICE_LOST

Post by jwwalker »

Hi, I'm trying support Vulkan on Windows with some code that seems to work correctly with Windows/Direct3D and Mac/Metal. Any clue what this exception means?

Ogre log:

Code: Select all

10:38:49: Creating resource group General
10:38:49: Creating resource group Internal
10:38:49: Creating resource group Autodetect
10:38:49: SceneManagerFactory for type 'DefaultSceneManager' registered.
10:38:49: Registering ResourceManager for type Material
10:38:49: Registering ResourceManager for type Mesh
10:38:49: Registering ResourceManager for type Mesh2
10:38:49: Registering ResourceManager for type OldSkeleton
10:38:49: MovableObjectFactory for type 'ParticleSystem' registered.
10:38:49: ArchiveFactory for archive type FileSystem registered.
10:38:49: ArchiveFactory for archive type Zip registered.
10:38:49: ArchiveFactory for archive type EmbeddedZip registered.
10:38:49: DDS codec registering
10:38:49: FreeImage version: 3.18.0
10:38:49: This program uses FreeImage, a free, open source image library supporting all common bitmap formats. See http://freeimage.sourceforge.net for details
10:38:49: Supported formats: bmp,ico,jpg,jif,jpeg,jpe,jng,koa,iff,lbm,mng,pbm,pbm,pcd,pcx,pgm,pgm,png,ppm,ppm,ras,tga,targa,tif,tiff,wap,wbmp,wbm,psd,psb,cut,xbm,xpm,gif,hdr,g3,sgi,rgb,rgba,bw,exr,j2k,j2c,jp2,pfm,pct,pict,pic,3fr,arw,bay,bmq,cap,cine,cr2,crw,cs1,dc2,dcr,drf,dsc,dng,erf,fff,ia,iiq,k25,kc2,kdc,mdc,mef,mos,mrw,nef,nrw,orf,pef,ptx,pxn,qtk,raf,raw,rdc,rw2,rwl,rwz,sr2,srf,srw,sti,x3f,webp
10:38:49: ETC codec registering
10:38:49: OITD codec registering
10:38:49: Registering ResourceManager for type HighLevelGpuProgram
10:38:49: MovableObjectFactory for type 'Decal' registered.
10:38:49: MovableObjectFactory for type 'InternalCubemapProbe' registered.
10:38:49: MovableObjectFactory for type 'Entity' registered.
10:38:49: MovableObjectFactory for type 'Item' registered.
10:38:49: MovableObjectFactory for type 'Light' registered.
10:38:49: MovableObjectFactory for type 'Rectangle2Dv2' registered.
10:38:49: MovableObjectFactory for type 'BillboardSet' registered.
10:38:49: MovableObjectFactory for type 'ManualObject2' registered.
10:38:49: MovableObjectFactory for type 'BillboardChain' registered.
10:38:49: MovableObjectFactory for type 'RibbonTrail' registered.
10:38:49: MovableObjectFactory for type 'WireAabb' registered.
10:38:49: *-*-* OGRE Initialising
10:38:49: *-*-* Version 3.0.0unstable (E)
10:38:49: Loading library C:\Program Files\FrameForge Storyboard Studio 4.0\RenderSystem_Vulkan_d.dll
10:38:49: Installing plugin: Vulkan RenderSystem
10:38:49: [Vulkan] Initializing VkInstance
10:38:49: Found instance extension: VK_KHR_device_group_creation
10:38:49: Found instance extension: VK_KHR_display
10:38:49: Found instance extension: VK_KHR_external_fence_capabilities
10:38:49: Found instance extension: VK_KHR_external_memory_capabilities
10:38:49: Found instance extension: VK_KHR_external_semaphore_capabilities
10:38:49: Found instance extension: VK_KHR_get_display_properties2
10:38:49: Found instance extension: VK_KHR_get_physical_device_properties2
10:38:49: Found instance extension: VK_KHR_get_surface_capabilities2
10:38:49: Found instance extension: VK_KHR_surface
10:38:49: Found instance extension: VK_KHR_surface_protected_capabilities
10:38:49: Found instance extension: VK_KHR_win32_surface
10:38:49: Found instance extension: VK_EXT_debug_report
10:38:49: Found instance extension: VK_EXT_debug_utils
10:38:49: Found instance extension: VK_EXT_direct_mode_display
10:38:49: Found instance extension: VK_EXT_swapchain_colorspace
10:38:49: Found instance extension: VK_NV_external_memory_capabilities
10:38:49: Found instance extension: VK_KHR_portability_enumeration
10:38:49: Found instance extension: VK_LUNARG_direct_driver_loading
10:38:49: Found instance layer: VK_LAYER_NV_optimus
10:38:49: WARNING: VK_LAYER_KHRONOS_validation layer not present. Extension VK_EXT_debug_marker not found
10:38:49: Requesting Instance Extension: VK_KHR_get_physical_device_properties2
10:38:49: Requesting Instance Extension: VK_KHR_win32_surface
10:38:49: Requesting Instance Extension: VK_EXT_debug_report
10:38:49: Requesting Instance Extension: VK_EXT_debug_utils
10:38:49: Requesting Instance Extension: VK_KHR_surface
10:38:49: WARNING: [Loader Message] Code 0 : windows_read_data_files_in_registry: Registry lookup failed to get layer manifest files.
10:38:49: [Vulkan] Found 1 devices
10:38:49: [Vulkan] Found devices:
10:38:49: NVIDIA GeForce RTX 2060 #0
10:38:49: Plugin successfully installed
10:38:49: CPU Identifier & Features
10:38:49: -------------------------
10:38:49:  *   CPU ID: GenuineIntel: Intel(R) Core(TM) i7-9700K CPU @ 3.60GHz
10:38:49:  *   Logical cores: 8
10:38:49:  *      SSE: yes
10:38:49:  *     SSE2: yes
10:38:49:  *     SSE3: yes
10:38:49:  *      MMX: yes
10:38:49:  *   MMXEXT: yes
10:38:49:  *    3DNOW: no
10:38:49:  * 3DNOWEXT: no
10:38:49:  *     CMOV: yes
10:38:49:  *      TSC: yes
10:38:49:  *      FPU: yes
10:38:49:  *      PRO: yes
10:38:49:  *       HT: no
10:38:49: -------------------------
10:38:51: [Vulkan] Found 1 devices
10:38:51: [Vulkan] Selecting device 0
10:38:51: Found device extension: VK_KHR_16bit_storage
10:38:51: Found device extension: VK_KHR_8bit_storage
10:38:51: Found device extension: VK_KHR_bind_memory2
10:38:51: Found device extension: VK_KHR_buffer_device_address
10:38:51: Found device extension: VK_KHR_copy_commands2
10:38:51: Found device extension: VK_KHR_create_renderpass2
10:38:51: Found device extension: VK_KHR_dedicated_allocation
10:38:51: Found device extension: VK_KHR_depth_stencil_resolve
10:38:51: Found device extension: VK_KHR_descriptor_update_template
10:38:51: Found device extension: VK_KHR_device_group
10:38:51: Found device extension: VK_KHR_draw_indirect_count
10:38:51: Found device extension: VK_KHR_driver_properties
10:38:51: Found device extension: VK_KHR_dynamic_rendering
10:38:51: Found device extension: VK_KHR_external_fence
10:38:51: Found device extension: VK_KHR_external_fence_win32
10:38:51: Found device extension: VK_KHR_external_memory
10:38:51: Found device extension: VK_KHR_external_memory_win32
10:38:51: Found device extension: VK_KHR_external_semaphore
10:38:51: Found device extension: VK_KHR_external_semaphore_win32
10:38:51: Found device extension: VK_KHR_format_feature_flags2
10:38:51: Found device extension: VK_KHR_fragment_shader_barycentric
10:38:51: Found device extension: VK_KHR_fragment_shading_rate
10:38:51: Found device extension: VK_KHR_get_memory_requirements2
10:38:51: Found device extension: VK_KHR_global_priority
10:38:51: Found device extension: VK_KHR_image_format_list
10:38:51: Found device extension: VK_KHR_imageless_framebuffer
10:38:51: Found device extension: VK_KHR_maintenance1
10:38:51: Found device extension: VK_KHR_maintenance2
10:38:51: Found device extension: VK_KHR_maintenance3
10:38:51: Found device extension: VK_KHR_maintenance4
10:38:51: Found device extension: VK_KHR_multiview
10:38:51: Found device extension: VK_KHR_pipeline_executable_properties
10:38:51: Found device extension: VK_KHR_pipeline_library
10:38:51: Found device extension: VK_KHR_present_id
10:38:51: Found device extension: VK_KHR_present_wait
10:38:51: Found device extension: VK_KHR_push_descriptor
10:38:51: Found device extension: VK_KHR_relaxed_block_layout
10:38:51: Found device extension: VK_KHR_sampler_mirror_clamp_to_edge
10:38:51: Found device extension: VK_KHR_sampler_ycbcr_conversion
10:38:51: Found device extension: VK_KHR_separate_depth_stencil_layouts
10:38:51: Found device extension: VK_KHR_shader_atomic_int64
10:38:51: Found device extension: VK_KHR_shader_clock
10:38:51: Found device extension: VK_KHR_shader_draw_parameters
10:38:51: Found device extension: VK_KHR_shader_float16_int8
10:38:51: Found device extension: VK_KHR_shader_float_controls
10:38:51: Found device extension: VK_KHR_shader_integer_dot_product
10:38:51: Found device extension: VK_KHR_shader_non_semantic_info
10:38:51: Found device extension: VK_KHR_shader_subgroup_extended_types
10:38:51: Found device extension: VK_KHR_shader_subgroup_uniform_control_flow
10:38:51: Found device extension: VK_KHR_shader_terminate_invocation
10:38:51: Found device extension: VK_KHR_spirv_1_4
10:38:51: Found device extension: VK_KHR_storage_buffer_storage_class
10:38:51: Found device extension: VK_KHR_swapchain
10:38:51: Found device extension: VK_KHR_swapchain_mutable_format
10:38:51: Found device extension: VK_KHR_synchronization2
10:38:51: Found device extension: VK_KHR_timeline_semaphore
10:38:51: Found device extension: VK_KHR_uniform_buffer_standard_layout
10:38:51: Found device extension: VK_KHR_variable_pointers
10:38:51: Found device extension: VK_KHR_video_decode_h264
10:38:51: Found device extension: VK_KHR_video_decode_h265
10:38:51: Found device extension: VK_KHR_video_decode_queue
10:38:51: Found device extension: VK_KHR_video_queue
10:38:51: Found device extension: VK_KHR_vulkan_memory_model
10:38:51: Found device extension: VK_KHR_win32_keyed_mutex
10:38:51: Found device extension: VK_KHR_workgroup_memory_explicit_layout
10:38:51: Found device extension: VK_KHR_zero_initialize_workgroup_memory
10:38:51: Found device extension: VK_EXT_4444_formats
10:38:51: Found device extension: VK_EXT_attachment_feedback_loop_layout
10:38:51: Found device extension: VK_EXT_blend_operation_advanced
10:38:51: Found device extension: VK_EXT_border_color_swizzle
10:38:51: Found device extension: VK_EXT_buffer_device_address
10:38:51: Found device extension: VK_EXT_calibrated_timestamps
10:38:51: Found device extension: VK_EXT_color_write_enable
10:38:51: Found device extension: VK_EXT_conditional_rendering
10:38:51: Found device extension: VK_EXT_conservative_rasterization
10:38:51: Found device extension: VK_EXT_custom_border_color
10:38:51: Found device extension: VK_EXT_depth_clamp_zero_one
10:38:51: Found device extension: VK_EXT_depth_clip_control
10:38:51: Found device extension: VK_EXT_depth_clip_enable
10:38:51: Found device extension: VK_EXT_depth_range_unrestricted
10:38:51: Found device extension: VK_EXT_descriptor_buffer
10:38:51: Found device extension: VK_EXT_descriptor_indexing
10:38:51: Found device extension: VK_EXT_discard_rectangles
10:38:51: Found device extension: VK_EXT_extended_dynamic_state
10:38:51: Found device extension: VK_EXT_extended_dynamic_state2
10:38:51: Found device extension: VK_EXT_extended_dynamic_state3
10:38:51: Found device extension: VK_EXT_external_memory_host
10:38:51: Found device extension: VK_EXT_fragment_shader_interlock
10:38:51: Found device extension: VK_EXT_full_screen_exclusive
10:38:51: Found device extension: VK_EXT_global_priority
10:38:51: Found device extension: VK_EXT_global_priority_query
10:38:51: Found device extension: VK_EXT_graphics_pipeline_library
10:38:51: Found device extension: VK_EXT_hdr_metadata
10:38:51: Found device extension: VK_EXT_host_query_reset
10:38:51: Found device extension: VK_EXT_image_2d_view_of_3d
10:38:51: Found device extension: VK_EXT_image_robustness
10:38:51: Found device extension: VK_EXT_image_sliced_view_of_3d
10:38:51: Found device extension: VK_EXT_image_view_min_lod
10:38:51: Found device extension: VK_EXT_index_type_uint8
10:38:51: Found device extension: VK_EXT_inline_uniform_block
10:38:51: Found device extension: VK_EXT_line_rasterization
10:38:51: Found device extension: VK_EXT_load_store_op_none
10:38:51: Found device extension: VK_EXT_memory_budget
10:38:51: Found device extension: VK_EXT_memory_priority
10:38:51: Found device extension: VK_EXT_mesh_shader
10:38:51: Found device extension: VK_EXT_multi_draw
10:38:51: Found device extension: VK_EXT_mutable_descriptor_type
10:38:51: Found device extension: VK_EXT_non_seamless_cube_map
10:38:51: Found device extension: VK_EXT_pageable_device_local_memory
10:38:51: Found device extension: VK_EXT_pci_bus_info
10:38:51: Found device extension: VK_EXT_pipeline_creation_cache_control
10:38:51: Found device extension: VK_EXT_pipeline_creation_feedback
10:38:51: Found device extension: VK_EXT_pipeline_robustness
10:38:51: Found device extension: VK_EXT_post_depth_coverage
10:38:51: Found device extension: VK_EXT_primitive_topology_list_restart
10:38:51: Found device extension: VK_EXT_primitives_generated_query
10:38:51: Found device extension: VK_EXT_private_data
10:38:51: Found device extension: VK_EXT_provoking_vertex
10:38:51: Found device extension: VK_EXT_queue_family_foreign
10:38:51: Found device extension: VK_EXT_robustness2
10:38:51: Found device extension: VK_EXT_sample_locations
10:38:51: Found device extension: VK_EXT_sampler_filter_minmax
10:38:51: Found device extension: VK_EXT_scalar_block_layout
10:38:51: Found device extension: VK_EXT_separate_stencil_usage
10:38:51: Found device extension: VK_EXT_shader_atomic_float
10:38:51: Found device extension: VK_EXT_shader_demote_to_helper_invocation
10:38:51: Found device extension: VK_EXT_shader_image_atomic_int64
10:38:51: Found device extension: VK_EXT_shader_module_identifier
10:38:51: Found device extension: VK_EXT_shader_object
10:38:51: Found device extension: VK_EXT_shader_subgroup_ballot
10:38:51: Found device extension: VK_EXT_shader_subgroup_vote
10:38:51: Found device extension: VK_EXT_shader_viewport_index_layer
10:38:51: Found device extension: VK_EXT_subgroup_size_control
10:38:51: Found device extension: VK_EXT_texel_buffer_alignment
10:38:51: Found device extension: VK_EXT_tooling_info
10:38:51: Found device extension: VK_EXT_transform_feedback
10:38:51: Found device extension: VK_EXT_vertex_attribute_divisor
10:38:51: Found device extension: VK_EXT_vertex_input_dynamic_state
10:38:51: Found device extension: VK_EXT_ycbcr_2plane_444_formats
10:38:51: Found device extension: VK_EXT_ycbcr_image_arrays
10:38:51: Found device extension: VK_NV_acquire_winrt_display
10:38:51: Found device extension: VK_NV_clip_space_w_scaling
10:38:51: Found device extension: VK_NV_compute_shader_derivatives
10:38:51: Found device extension: VK_NV_cooperative_matrix
10:38:51: Found device extension: VK_NV_copy_memory_indirect
10:38:51: Found device extension: VK_NV_corner_sampled_image
10:38:51: Found device extension: VK_NV_coverage_reduction_mode
10:38:51: Found device extension: VK_NV_dedicated_allocation
10:38:51: Found device extension: VK_NV_dedicated_allocation_image_aliasing
10:38:51: Found device extension: VK_NV_device_diagnostic_checkpoints
10:38:51: Found device extension: VK_NV_device_diagnostics_config
10:38:51: Found device extension: VK_NV_device_generated_commands
10:38:51: Found device extension: VK_NV_external_memory
10:38:51: Found device extension: VK_NV_external_memory_win32
10:38:51: Found device extension: VK_NV_fill_rectangle
10:38:51: Found device extension: VK_NV_fragment_coverage_to_color
10:38:51: Found device extension: VK_NV_fragment_shader_barycentric
10:38:51: Found device extension: VK_NV_fragment_shading_rate_enums
10:38:51: Found device extension: VK_NV_framebuffer_mixed_samples
10:38:51: Found device extension: VK_NV_geometry_shader_passthrough
10:38:51: Found device extension: VK_NV_inherited_viewport_scissor
10:38:51: Found device extension: VK_NV_linear_color_attachment
10:38:51: Found device extension: VK_NV_low_latency
10:38:51: Found device extension: VK_NV_memory_decompression
10:38:51: Found device extension: VK_NV_mesh_shader
10:38:51: Found device extension: VK_NV_representative_fragment_test
10:38:51: Found device extension: VK_NV_sample_mask_override_coverage
10:38:51: Found device extension: VK_NV_scissor_exclusive
10:38:51: Found device extension: VK_NV_shader_image_footprint
10:38:51: Found device extension: VK_NV_shader_sm_builtins
10:38:51: Found device extension: VK_NV_shader_subgroup_partitioned
10:38:51: Found device extension: VK_NV_shading_rate_image
10:38:51: Found device extension: VK_NV_viewport_array2
10:38:51: Found device extension: VK_NV_viewport_swizzle
10:38:51: Found device extension: VK_NV_win32_keyed_mutex
10:38:51: Found device extension: VK_NVX_multiview_per_view_attributes
10:38:51: Found device extension: VK_AMD_buffer_marker
10:38:51: Requesting Extension: VK_KHR_16bit_storage
10:38:51: Requesting Extension: VK_KHR_maintenance2
10:38:51: Requesting Extension: VK_KHR_shader_float16_int8
10:38:51: Requesting Extension: VK_KHR_storage_buffer_storage_class
10:38:51: Requesting Extension: VK_EXT_shader_subgroup_vote
10:38:51: Requesting Extension: VK_EXT_shader_viewport_index_layer
10:38:51: Requesting Extension: VK_KHR_swapchain
10:38:51: [Vulkan] API Version: 1.3.242 (0x4030f2)
10:38:51: [Vulkan] Driver Version (raw): 0x85d88000
10:38:51: [Vulkan] Vendor ID: 0x10de
10:38:51: [Vulkan] Device ID: 0x1f08
10:38:51: Registering ResourceManager for type GpuProgram
10:38:51: RenderSystem capabilities
10:38:51: -------------------------
10:38:51: RenderSystem Name: Vulkan Rendering Subsystem
10:38:51: GPU Vendor: nvidia
10:38:51: Device Name: NVIDIA GeForce RTX 2060
10:38:51: Driver Version: 535.98.0.0
10:38:51:  * Fixed function pipeline: no
10:38:51:  * Hardware generation of mipmaps: yes
10:38:51:  * Texture blending: yes
10:38:51:  * Anisotropic texture filtering: yes
10:38:51:  * Dot product texture operation: yes
10:38:51:  * Cube mapping: yes
10:38:51:  * Hardware stencil buffer: yes
10:38:51:    - Stencil depth: 8
10:38:51:    - Two sided stencil support: yes
10:38:51:    - Wrap stencil values: yes
10:38:51:  * Hardware vertex / index buffers: yes
10:38:51:  * 32-bit index buffers: no
10:38:51:  * Vertex programs: no
10:38:51:  * Number of floating-point constants for vertex programs: 256
10:38:51:  * Number of integer constants for vertex programs: 256
10:38:51:  * Number of boolean constants for vertex programs: 256
10:38:51:  * Fragment programs: no
10:38:51:  * Number of floating-point constants for fragment programs: 256
10:38:51:  * Number of integer constants for fragment programs: 256
10:38:51:  * Number of boolean constants for fragment programs: 256
10:38:51:  * Geometry programs: no
10:38:51:  * Number of floating-point constants for geometry programs: 256
10:38:51:  * Number of integer constants for geometry programs: 256
10:38:51:  * Number of boolean constants for geometry programs: 256
10:38:51:  * Tessellation Hull programs: no
10:38:51:  * Number of floating-point constants for tessellation hull programs: 256
10:38:51:  * Number of integer constants for tessellation hull programs: 256
10:38:51:  * Number of boolean constants for tessellation hull programs: 256
10:38:51:  * Tessellation Domain programs: no
10:38:51:  * Number of floating-point constants for tessellation domain programs: 256
10:38:51:  * Number of integer constants for tessellation domain programs: 256
10:38:51:  * Number of boolean constants for tessellation domain programs: 256
10:38:51:  * Compute programs: yes
10:38:51:  * Number of floating-point constants for compute programs: 256
10:38:51:  * Number of integer constants for compute programs: 256
10:38:51:  * Number of boolean constants for compute programs: 256
10:38:51:  * Supported Shader Profiles: glsl glslvk hlsl hlslvk
10:38:51:  * Texture Compression: yes
10:38:51:    - DXT: yes
10:38:51:    - VTC: no
10:38:51:    - PVRTC: no
10:38:51:    - ATC: no
10:38:51:    - ETC1: no
10:38:51:    - ETC2: no
10:38:51:    - BC4/BC5: yes
10:38:51:    - BC6H/BC7: yes
10:38:51:    - ASTC: no
10:38:51:  * Hardware Occlusion Query: no
10:38:51:  * User clip planes: yes
10:38:51:  * VET_UBYTE4 vertex element type: yes
10:38:51:  * Infinite far plane projection: yes
10:38:51:  * Hardware render-to-texture: yes
10:38:51:  * Floating point textures: yes
10:38:51:  * Non-power-of-two textures: yes
10:38:51:  * 1d textures: yes
10:38:51:  * Volume textures: yes
10:38:51:  * Max Texture resolution (2D) 16384
10:38:51:  * Max Texture resolution (3D) 4096
10:38:51:  * Max Texture resolution (Cubemaps) 16384
10:38:51:  * Multiple Render Targets: 1
10:38:51:    - With different bit depths: no
10:38:51:  * Point Sprites: yes
10:38:51:  * Extended point parameters: yes
10:38:51:  * Max Point Size: 256
10:38:51:  * Vertex texture fetch: no
10:38:51:  * Number of world matrices: 0
10:38:51:  * Number of texture units: 32
10:38:51:  * Stencil buffer depth: 8
10:38:51:  * Number of vertex blend matrices: 0
10:38:51:  * Render to Vertex Buffer : no
10:38:51:  * Hardware Atomic Counters: no
10:38:51:  * Shader 16-bit floating point (half): no
10:38:51:  * Compute max threads per threadgroup per axis: 1024, 1024, 64
10:38:51:  * Compute max threads per threadgroup total: 1024
10:38:51:  * Using Reverse Z: yes
10:38:51: Supported memory types for general buffer usage: 31
10:38:51: Supported memory types for reading: 31
10:38:51: VkDevice will use coherent memory buffers: true
10:38:51: VkDevice will use non-coherent memory buffers: false
10:38:51: VkDevice will use coherent memory for reading: true
10:38:51: VkDevice read memory is coherent: true
10:38:51: Trying presentMode = IMMEDIATE_KHR
10:38:51: Chosen presentMode = IMMEDIATE_KHR
10:38:51: surfaceCaps.currentTransform = 1
10:38:52: DefaultWorkQueue('Root') initialising on thread main.
10:38:52:  _hlmsMacroblockCreated 
10:38:52:  _hlmsBlendblockCreated 
10:38:52: Particle Renderer Type 'billboard' registered
10:38:52: Added resource location 'C:\Program Files\FrameForge Storyboard Studio 4.0\ogre resources/2.0/scripts/materials/Common' of type 'FileSystem' to resource group 'General'
10:38:52: Added resource location 'C:\Program Files\FrameForge Storyboard Studio 4.0\ogre resources/2.0/scripts/materials/Common/Any' of type 'FileSystem' to resource group 'General'
10:38:52: Added resource location 'C:\Program Files\FrameForge Storyboard Studio 4.0\ogre resources/2.0/scripts/materials/Common/HLSL' of type 'FileSystem' to resource group 'General'
10:38:52: Added resource location 'C:\Program Files\FrameForge Storyboard Studio 4.0\ogre resources/2.0/scripts/materials/Common/GLSL' of type 'FileSystem' to resource group 'General'
10:38:52: Added resource location 'C:\Program Files\FrameForge Storyboard Studio 4.0\ogre resources/Contents/Resources/2.0/scripts/materials/HDR' of type 'FileSystem' to resource group 'General'
10:38:52: Added resource location 'C:\Program Files\FrameForge Storyboard Studio 4.0\ogre resources/Contents/Resources/2.0/scripts/materials/HDR/HLSL' of type 'FileSystem' to resource group 'General'
10:38:52: Added resource location 'C:\Program Files\FrameForge Storyboard Studio 4.0\ogre resources/Contents/Resources/2.0/scripts/materials/HDR/Metal' of type 'FileSystem' to resource group 'General'
10:38:52: Added resource location 'C:\Program Files\FrameForge Storyboard Studio 4.0\ogre resources/Contents/Resources/2.0/scripts/materials/PbsMaterials' of type 'FileSystem' to resource group 'General'
10:38:52: Added resource location 'C:\Program Files\FrameForge Storyboard Studio 4.0\ogre resources/Hlms/Common/Any' of type 'FileSystem' to resource group 'General'
10:38:52: Added resource location 'C:\Program Files\FrameForge Storyboard Studio 4.0\ogre resources/Hlms/Common/HLSL' of type 'FileSystem' to resource group 'General'
10:38:52: Added resource location 'C:\Program Files\FrameForge Storyboard Studio 4.0\ogre resources/Hlms/Common/GLSL' of type 'FileSystem' to resource group 'General'
10:38:52: Creating resource group Popular
10:38:52: Added resource location 'C:\Program Files\FrameForge Storyboard Studio 4.0\ogre resources/2.0/scripts/Compositors' of type 'FileSystem' to resource group 'Popular'
10:38:52:  _hlmsSamplerblockCreated 
10:38:52:  _hlmsSamplerblockCreated 
10:38:52:  _hlmsSamplerblockCreated 
10:38:52:  _hlmsSamplerblockCreated 
10:38:52: [INFO] Texture cache not found at C:\Users\jw\AppData\Local\FrameForge\Ogre-cache\/textureMetadataCache.json
10:38:52: Parsing scripts for resource group Autodetect
10:38:52: Finished parsing scripts for resource group Autodetect
10:38:52: Creating resources for group Autodetect
10:38:52: All done
10:38:52: Parsing scripts for resource group General
10:38:52: Parsing script Quad.program
10:38:53: Shader Ogre/Compositor/Quad_vs_VK compiled successfully.
10:38:53: Shader Ogre/Compositor/QuadCameraDir_vs_VK compiled successfully.
10:38:53: Shader Ogre/Compositor/QuadCameraDirNoUV_vs_VK compiled successfully.
10:38:53: Parsing script Atmosphere.material
10:38:53: Shader Ogre/Atmo/NprSky_ps_VK compiled successfully.
10:38:53:  _hlmsMacroblockCreated 
10:38:53: Parsing script Copyback.material
10:38:53: Shader Ogre/Copy/4xFP32_ps_VK compiled successfully.
10:38:53:  _hlmsSamplerblockCreated 
10:38:53:  _hlmsSamplerblockCreated 
10:38:53:  _hlmsMacroblockCreated 
10:38:53: Shader Ogre/Copy/4xFP32_2DArray_ps_VK compiled successfully.
10:38:53:  _hlmsSamplerblockCreated 
10:38:53:  _hlmsSamplerblockCreated 
10:38:53: Shader Ogre/Copy/1xFP32_ps_VK compiled successfully.
10:38:53: Shader Ogre/Resolve/1xFP32_Subsample0_ps_VK compiled successfully.
10:38:53:  _hlmsSamplerblockCreated 
10:38:53: Parsing script DepthUtils.material
10:38:53: Shader Ogre/Depth/DownscaleMax_ps_VK compiled successfully.
10:38:53:  _hlmsSamplerblockCreated 
10:38:53:  _hlmsMacroblockCreated 
10:38:53: Parsing script DPM.material
10:38:53: Shader Ogre/DPM/CubeToDpm_4xFP16_ps_VK compiled successfully.
10:38:53:  _hlmsSamplerblockCreated 
10:38:53:  _hlmsSamplerblockCreated 
10:38:53:  _hlmsMacroblockCreated 
10:38:53: Parsing script DPSM.material
10:38:53: Shader Ogre/DPSM/CubeToDpsm_ps_VK compiled successfully.
10:38:53:  _hlmsSamplerblockCreated 
10:38:53: Shader Ogre/DPSM/CubeToDpsm_Colour_ps_VK compiled successfully.
10:38:53:  _hlmsSamplerblockCreated 
10:38:53: Parsing script EsmGaussianBlurLogFilter.material
10:38:53: Shader ESM/GaussianLogFilterH_ps_VK compiled successfully.
10:38:53: Shader ESM/GaussianLogFilterV_ps_VK compiled successfully.
10:38:53:  _hlmsSamplerblockCreated 
10:38:53:  _hlmsSamplerblockCreated 
10:38:53: Parsing script HiddenAreaMeshVr.material
10:38:53: Shader Ogre/VR/HiddenAreaMeshVr_vs_VK compiled successfully.
10:38:53: Shader Ogre/VR/HiddenAreaMeshVr_ps_VK compiled successfully.
10:38:53:  _hlmsBlendblockCreated 
10:38:53: Parsing script JWDepthOfField.material
10:38:53: Shader JW/DoF_ps_vulkan compiled successfully.
10:38:53:  _hlmsSamplerblockCreated 
10:38:53:  _hlmsSamplerblockCreated 
10:38:53:  _hlmsMacroblockCreated 
10:38:53: Parsing script JWMirrorDepth.material
10:38:53: Shader JW/MirrorDepth_ps_vulkan compiled successfully.
10:38:53:  _hlmsSamplerblockCreated 
10:38:53:  _hlmsSamplerblockCreated 
10:38:53:  _hlmsMacroblockCreated 
10:38:53: Parsing script PccDepthCompressor.material
10:38:53: Shader PccDepthCompressor_ps_VK compiled successfully.
10:38:53:  _hlmsSamplerblockCreated 
10:38:53:  _hlmsBlendblockCreated 
10:38:53: Parsing script RadialDensityMask.material
10:38:53: Shader Ogre/Compositor/RadialDensityMask_vs_VK compiled successfully.
10:38:53: Shader Ogre/VR/RadialDensityMask_ps_VK compiled successfully.
10:38:53: Parsing script SelectionHalo.material
10:38:53: Shader JW/SelHalo_ps_VK compiled successfully.
10:38:53:  _hlmsSamplerblockCreated 
10:38:53:  _hlmsSamplerblockCreated 
10:38:53: Parsing script Sky.material
10:38:53: Shader Ogre/Sky/Cubemap_ps_VK compiled successfully.
10:38:53:  _hlmsSamplerblockCreated 
10:38:53:  _hlmsSamplerblockCreated 
10:38:53: Shader Ogre/Sky/Equirectangular_ps_VK compiled successfully.
10:38:53:  _hlmsSamplerblockCreated 
10:38:53: Parsing script EsmGaussianBlurLogFilter.material.json
10:38:53:  _hlmsSamplerblockCreated 
10:38:53: Parsing script Mipmaps.material.json
10:38:53: Finished parsing scripts for resource group General
10:38:53: Creating resources for group General
10:38:53: All done
10:38:53: Parsing scripts for resource group Internal
10:38:53: Finished parsing scripts for resource group Internal
10:38:53: Creating resources for group Internal
10:38:53: All done
10:38:53: Parsing scripts for resource group Popular
10:38:53: Parsing script JWNodes.compositor
10:38:53: Finished parsing scripts for resource group Popular
10:38:53: Creating resources for group Popular
10:38:53: All done
10:38:53: Trying presentMode = FIFO_KHR
10:38:53: Chosen presentMode = FIFO_KHR
10:38:53: surfaceCaps.currentTransform = 1
10:38:55: Trying presentMode = FIFO_KHR
10:38:55: Chosen presentMode = FIFO_KHR
10:38:55: surfaceCaps.currentTransform = 1
10:38:55: Trying presentMode = FIFO_KHR
10:38:55: Chosen presentMode = FIFO_KHR
10:38:55: surfaceCaps.currentTransform = 1
10:38:55: Trying presentMode = FIFO_KHR
10:38:55: Chosen presentMode = FIFO_KHR
10:38:55: surfaceCaps.currentTransform = 1
10:38:56: Trying presentMode = FIFO_KHR
10:38:56: Chosen presentMode = FIFO_KHR
10:38:56: surfaceCaps.currentTransform = 1
10:38:57: Trying presentMode = FIFO_KHR
10:38:57: Chosen presentMode = FIFO_KHR
10:38:57: surfaceCaps.currentTransform = 1
10:38:57:  _hlmsMacroblockCreated 
10:38:57:  _hlmsBlendblockCreated 
10:38:57:  _hlmsSamplerblockCreated 
10:38:57:  _hlmsMacroblockCreated 
10:38:57:  _hlmsMacroblockCreated 
10:38:57: Shader 100000000VertexShader_vs compiled successfully.
10:38:57: Shader 100000000PixelShader_ps compiled successfully.
10:38:57: Shader 300000000VertexShader_vs compiled successfully.
10:38:57: Shader 300000000PixelShader_ps compiled successfully.
10:38:57:  _hlmsMacroblockCreated 
10:38:57: Shader 300000001VertexShader_vs compiled successfully.
10:38:57: Shader 300000001PixelShader_ps compiled successfully.
10:38:57:  _hlmsMacroblockCreated 
10:38:57:  _hlmsMacroblockCreated 
10:38:57: Shader 100000001VertexShader_vs compiled successfully.
10:38:58: Shader 100000001PixelShader_ps compiled successfully.
10:38:58: Shader 100000002VertexShader_vs compiled successfully.
10:38:58: Shader 100000002PixelShader_ps compiled successfully.
10:38:58:  _hlmsMacroblockCreated 
10:38:58:  _hlmsBlendblockCreated 
10:38:58:  _hlmsSamplerblockCreated 
10:38:58:  _hlmsMacroblockCreated 
10:38:58:  _hlmsMacroblockCreated 
10:38:58:  _hlmsMacroblockCreated 
10:38:58: Trying presentMode = FIFO_KHR
10:38:58: Chosen presentMode = FIFO_KHR
10:38:58: surfaceCaps.currentTransform = 1
10:38:58:  _hlmsMacroblockCreated 
10:38:58:  _hlmsBlendblockCreated 
10:38:58:  _hlmsSamplerblockCreated 
10:38:58:  _hlmsMacroblockCreated 
10:38:58:  _hlmsMacroblockCreated 
10:38:58:  _hlmsMacroblockCreated 
10:38:59:  _hlmsMacroblockCreated 
10:38:59:  _hlmsBlendblockCreated 
10:38:59:  _hlmsSamplerblockCreated 
10:38:59:  _hlmsMacroblockCreated 
10:38:59:  _hlmsMacroblockCreated 
10:39:05:  _hlmsMacroblockCreated 
10:39:05: Trying presentMode = FIFO_KHR
10:39:05: Chosen presentMode = FIFO_KHR
10:39:05: surfaceCaps.currentTransform = 1
10:39:05: Trying presentMode = FIFO_KHR
10:39:05: Chosen presentMode = FIFO_KHR
10:39:05: surfaceCaps.currentTransform = 1
10:39:07: Trying presentMode = FIFO_KHR
10:39:07: Chosen presentMode = FIFO_KHR
10:39:07: surfaceCaps.currentTransform = 1
10:39:07: Trying presentMode = FIFO_KHR
10:39:07: Chosen presentMode = FIFO_KHR
10:39:07: surfaceCaps.currentTransform = 1
10:39:07: Trying presentMode = FIFO_KHR
10:39:07: Chosen presentMode = FIFO_KHR
10:39:07: surfaceCaps.currentTransform = 1
10:39:07: workspacePreUpdate with mirrors
10:39:07: passEarlyPreExecute with mirrors
10:39:07: Shader 300000002VertexShader_vs compiled successfully.
10:39:07:  _hlmsMacroblockCreated 
10:39:07: Shader 100000003VertexShader_vs compiled successfully.
10:39:07:  _hlmsMacroblockCreated 
10:39:07:  _hlmsMacroblockCreated 
10:39:08:  _hlmsMacroblockCreated 
10:39:08: Shader 100000004VertexShader_vs compiled successfully.
10:39:08: Shader 100000004PixelShader_ps compiled successfully.
10:39:08: Shader 100000005VertexShader_vs compiled successfully.
10:39:08: Shader 100000005PixelShader_ps compiled successfully.
10:39:08: Shader 100000006VertexShader_vs compiled successfully.
10:39:08: Shader 100000006PixelShader_ps compiled successfully.
10:39:09: Shader 100000007VertexShader_vs compiled successfully.
10:39:09: Shader 100000007PixelShader_ps compiled successfully.
10:39:09: Shader 100000008VertexShader_vs compiled successfully.
10:39:09: Shader 100000008PixelShader_ps compiled successfully.
10:39:09: Shader 100000009VertexShader_vs compiled successfully.
10:39:10: Shader 100000009PixelShader_ps compiled successfully.
10:39:10: Shader 100000010VertexShader_vs compiled successfully.
10:39:10: Shader 100000010PixelShader_ps compiled successfully.
10:39:10: Shader 300000003VertexShader_vs compiled successfully.
10:39:10: Shader 300000003PixelShader_ps compiled successfully.
10:39:10:  _hlmsMacroblockCreated 
10:39:10: Shader 100000011VertexShader_vs compiled successfully.
10:39:10: Shader 100000011PixelShader_ps compiled successfully.
10:39:11: Shader 100000012VertexShader_vs compiled successfully.
10:39:11: Shader 100000012PixelShader_ps compiled successfully.
10:39:11:  _hlmsMacroblockCreated 
10:39:11: Shader 300000004VertexShader_vs compiled successfully.
10:39:11: Shader 300000005VertexShader_vs compiled successfully.
10:39:11: Shader 300000005PixelShader_ps compiled successfully.
10:39:11:  _hlmsMacroblockCreated 
10:39:11:  _hlmsBlendblockCreated 
10:39:11:  _hlmsSamplerblockCreated 
10:39:11:  _hlmsMacroblockCreated 
10:39:11:  _hlmsMacroblockCreated 
10:39:12: Shader 100000013VertexShader_vs compiled successfully.
10:39:12: Shader 100000013PixelShader_ps compiled successfully.
10:39:12: Shader 100000014VertexShader_vs compiled successfully.
10:39:12: Shader 100000014PixelShader_ps compiled successfully.
10:39:12: Shader 100000015VertexShader_vs compiled successfully.
10:39:12: Shader 100000015PixelShader_ps compiled successfully.
10:39:13: Shader 100000016VertexShader_vs compiled successfully.
10:39:13: Shader 100000016PixelShader_ps compiled successfully.
10:39:13: Shader 100000017VertexShader_vs compiled successfully.
10:39:13: Shader 100000017PixelShader_ps compiled successfully.
10:39:13: Shader 100000018VertexShader_vs compiled successfully.
10:39:14: Shader 100000018PixelShader_ps compiled successfully.
10:39:14:  _hlmsMacroblockCreated 
10:39:14: workspacePreUpdate with mirrors
10:39:14: passEarlyPreExecute with mirrors
10:39:14: Trying presentMode = FIFO_KHR
10:39:14: Chosen presentMode = FIFO_KHR
10:39:14: surfaceCaps.currentTransform = 1
10:39:14: Trying presentMode = FIFO_KHR
10:39:14: Chosen presentMode = FIFO_KHR
10:39:14: surfaceCaps.currentTransform = 1
10:39:14: Trying presentMode = FIFO_KHR
10:39:14: Chosen presentMode = FIFO_KHR
10:39:14: surfaceCaps.currentTransform = 1
10:39:18: workspacePreUpdate with mirrors
10:39:18: passEarlyPreExecute with mirrors
10:39:18: OGRE EXCEPTION(3:RenderingAPIException): vkQueueSubmit failed
VkResult = VK_ERROR_DEVICE_LOST in void __thiscall Ogre::VulkanQueue::commitAndNextCommandBuffer(enum Ogre::SubmissionType::SubmissionType) at D:\MoreCode\Ogre\ogre-next-fork\RenderSystems\Vulkan\src\OgreVulkanQueue.cpp (line 1239)
User avatar
dark_sylinc
OGRE Team Member
OGRE Team Member
Posts: 5477
Joined: Sat Jul 21, 2007 4:55 pm
Location: Buenos Aires, Argentina
x 1359

Re: Vulkan error VK_ERROR_DEVICE_LOST

Post by dark_sylinc »

Does validation layers complain?

VK_ERROR_DEVICE_LOST can happen because:

  • Application/OgreNext bug (e.g. fails validation). This is the most likely

  • GPU hang (e.g. uninitialized variable sent to a shader and a loop gets stuck for a very long time)

  • Driver bug / old driver

  • HW error (either malfunction or the GPU is being physically being disconnected. Can happen on laptops quite often)

I see this msg repeated way too often (more than normal):

10:38:53: Trying presentMode = FIFO_KHR
10:38:53: Chosen presentMode = FIFO_KHR
10:38:53: surfaceCaps.currentTransform = 1

Which only happens when rebuilding the swapchain; which leads me to believe there is either something wrong when interfacing with the Window (e.g. HWND handle) or the window is being resized aggressively until a bug is triggered.

Is MSAA/FSAA being used?

jwwalker
Goblin
Posts: 268
Joined: Thu Aug 12, 2021 10:06 pm
Location: San Diego, CA, USA
x 19

Re: Vulkan error VK_ERROR_DEVICE_LOST

Post by jwwalker »

dark_sylinc wrote: Mon Jun 12, 2023 8:43 pm

Does validation layers complain?

I have little experience with Vulkan debugging, but your question reminded me that I have something called "Vulkan Configurator" that came with the SDK. Setting that to "Validation", "Overriding Layers by the Vulkan Configurator", and "Standard Preset", and then running my app, the vkCreateInstance call returns VK_ERROR_LAYER_NO_PRESENT. So I'm probably doing something ignorant.

dark_sylinc wrote: Mon Jun 12, 2023 8:43 pm

VK_ERROR_DEVICE_LOST can happen because:

  • Application/OgreNext bug (e.g. fails validation). This is the most likely

  • GPU hang (e.g. uninitialized variable sent to a shader and a loop gets stuck for a very long time)

  • Driver bug / old driver

  • HW error (either malfunction or the GPU is being physically being disconnected. Can happen on laptops quite often)

I see this msg repeated way too often (more than normal):

10:38:53: Trying presentMode = FIFO_KHR
10:38:53: Chosen presentMode = FIFO_KHR
10:38:53: surfaceCaps.currentTransform = 1

Which only happens when rebuilding the swapchain; which leads me to believe there is either something wrong when interfacing with the Window (e.g. HWND handle) or the window is being resized aggressively until a bug is triggered.

Is MSAA/FSAA being used?

Yes, I guess I am using FSAA. I don't think I'm doing a lot of window resizes, but windows do come and go at times in my app.

My previous testing was in 32 bits. When I tried 64 bits, a lot of validation errors appear in the log. (I've cut out part of it because of a limit in the size of data that is allowed in a forum post.)

Code: Select all

13:25:20: Creating resource group General
13:25:20: Creating resource group Internal
13:25:20: Creating resource group Autodetect
13:25:20: SceneManagerFactory for type 'DefaultSceneManager' registered.
13:25:20: Registering ResourceManager for type Material
13:25:20: Registering ResourceManager for type Mesh
13:25:20: Registering ResourceManager for type Mesh2
13:25:20: Registering ResourceManager for type OldSkeleton
13:25:20: MovableObjectFactory for type 'ParticleSystem' registered.
13:25:20: ArchiveFactory for archive type FileSystem registered.
13:25:20: ArchiveFactory for archive type Zip registered.
13:25:20: ArchiveFactory for archive type EmbeddedZip registered.
13:25:20: DDS codec registering
13:25:20: FreeImage version: 3.18.0
13:25:20: This program uses FreeImage, a free, open source image library supporting all common bitmap formats. See http://freeimage.sourceforge.net for details
13:25:20: Supported formats: bmp,ico,jpg,jif,jpeg,jpe,jng,koa,iff,lbm,mng,pbm,pbm,pcd,pcx,pgm,pgm,png,ppm,ppm,ras,tga,targa,tif,tiff,wap,wbmp,wbm,psd,psb,cut,xbm,xpm,gif,hdr,g3,sgi,rgb,rgba,bw,exr,j2k,j2c,jp2,pfm,pct,pict,pic,3fr,arw,bay,bmq,cap,cine,cr2,crw,cs1,dc2,dcr,drf,dsc,dng,erf,fff,ia,iiq,k25,kc2,kdc,mdc,mef,mos,mrw,nef,nrw,orf,pef,ptx,pxn,qtk,raf,raw,rdc,rw2,rwl,rwz,sr2,srf,srw,sti,x3f,webp
13:25:20: ETC codec registering
13:25:20: OITD codec registering
13:25:20: Registering ResourceManager for type HighLevelGpuProgram
13:25:21: MovableObjectFactory for type 'Decal' registered.
13:25:21: MovableObjectFactory for type 'InternalCubemapProbe' registered.
13:25:21: MovableObjectFactory for type 'Entity' registered.
13:25:21: MovableObjectFactory for type 'Item' registered.
13:25:21: MovableObjectFactory for type 'Light' registered.
13:25:21: MovableObjectFactory for type 'Rectangle2Dv2' registered.
13:25:21: MovableObjectFactory for type 'BillboardSet' registered.
13:25:21: MovableObjectFactory for type 'ManualObject2' registered.
13:25:21: MovableObjectFactory for type 'BillboardChain' registered.
13:25:21: MovableObjectFactory for type 'RibbonTrail' registered.
13:25:21: MovableObjectFactory for type 'WireAabb' registered.
13:25:21: *-*-* OGRE Initialising
13:25:21: *-*-* Version 3.0.0unstable (E)
13:25:21: Loading library D:\FFx64\RenderSystem_Vulkan_d.dll
13:25:21: Installing plugin: Vulkan RenderSystem
13:25:21: [Vulkan] Initializing VkInstance
13:25:22: Found instance extension: VK_KHR_device_group_creation
13:25:22: Found instance extension: VK_KHR_display
13:25:22: Found instance extension: VK_KHR_external_fence_capabilities
13:25:22: Found instance extension: VK_KHR_external_memory_capabilities
13:25:22: Found instance extension: VK_KHR_external_semaphore_capabilities
13:25:22: Found instance extension: VK_KHR_get_display_properties2
13:25:22: Found instance extension: VK_KHR_get_physical_device_properties2
13:25:22: Found instance extension: VK_KHR_get_surface_capabilities2
13:25:22: Found instance extension: VK_KHR_surface
13:25:22: Found instance extension: VK_KHR_surface_protected_capabilities
13:25:22: Found instance extension: VK_KHR_win32_surface
13:25:22: Found instance extension: VK_EXT_debug_report
13:25:22: Found instance extension: VK_EXT_debug_utils
13:25:22: Found instance extension: VK_EXT_direct_mode_display
13:25:22: Found instance extension: VK_EXT_swapchain_colorspace
13:25:22: Found instance extension: VK_NV_external_memory_capabilities
13:25:22: Found instance extension: VK_KHR_portability_enumeration
13:25:22: Found instance extension: VK_LUNARG_direct_driver_loading
13:25:22: Found instance layer: VK_LAYER_NV_optimus
13:25:22: Found instance layer: VK_LAYER_LUNARG_api_dump
13:25:22: Found instance layer: VK_LAYER_LUNARG_gfxreconstruct
13:25:22: Found instance layer: VK_LAYER_KHRONOS_synchronization2
13:25:22: Found instance layer: VK_LAYER_KHRONOS_validation
13:25:22: Found instance layer: VK_LAYER_LUNARG_monitor
13:25:22: Found instance layer: VK_LAYER_LUNARG_screenshot
13:25:22: Found instance layer: VK_LAYER_KHRONOS_profiles
13:25:22: Requesting Instance Extension: VK_KHR_get_physical_device_properties2
13:25:22: Requesting Instance Extension: VK_KHR_win32_surface
13:25:22: Requesting Instance Extension: VK_EXT_debug_report
13:25:22: Requesting Instance Extension: VK_EXT_debug_utils
13:25:22: Requesting Instance Extension: VK_KHR_surface
13:25:22: [Vulkan] Found 1 devices
13:25:22: [Vulkan] Found devices:
13:25:22: NVIDIA GeForce RTX 2060 #0
13:25:22: [Vulkan] Found 1 devices
13:25:22: [Vulkan] Found devices:
13:25:22: NVIDIA GeForce RTX 2060 #0
13:25:22: Plugin successfully installed
13:25:22: CPU Identifier & Features
13:25:22: -------------------------
13:25:22:  *   CPU ID: GenuineIntel: Intel(R) Core(TM) i7-9700K CPU @ 3.60GHz
13:25:22:  *   Logical cores: 8
13:25:22:  *      SSE: yes
13:25:22:  *     SSE2: yes
13:25:22:  *     SSE3: yes
13:25:22:  *      MMX: yes
13:25:22:  *   MMXEXT: yes
13:25:22:  *    3DNOW: no
13:25:22:  * 3DNOWEXT: no
13:25:22:  *     CMOV: yes
13:25:22:  *      TSC: yes
13:25:22:  *      FPU: yes
13:25:22:  *      PRO: yes
13:25:22:  *       HT: no
13:25:22: -------------------------
13:25:33: [Vulkan] Found 1 devices
13:25:33: [Vulkan] Selecting device 0
13:25:33: Found device extension: VK_KHR_16bit_storage
13:25:33: Found device extension: VK_KHR_8bit_storage
13:25:33: Found device extension: VK_KHR_acceleration_structure
13:25:33: Found device extension: VK_KHR_bind_memory2
13:25:33: Found device extension: VK_KHR_buffer_device_address
13:25:33: Found device extension: VK_KHR_copy_commands2
13:25:33: Found device extension: VK_KHR_create_renderpass2
13:25:33: Found device extension: VK_KHR_dedicated_allocation
13:25:33: Found device extension: VK_KHR_deferred_host_operations
13:25:33: Found device extension: VK_KHR_depth_stencil_resolve
13:25:33: Found device extension: VK_KHR_descriptor_update_template
13:25:33: Found device extension: VK_KHR_device_group
13:25:33: Found device extension: VK_KHR_draw_indirect_count
13:25:33: Found device extension: VK_KHR_driver_properties
13:25:33: Found device extension: VK_KHR_dynamic_rendering
13:25:33: Found device extension: VK_KHR_external_fence
13:25:33: Found device extension: VK_KHR_external_fence_win32
13:25:33: Found device extension: VK_KHR_external_memory
13:25:33: Found device extension: VK_KHR_external_memory_win32
13:25:33: Found device extension: VK_KHR_external_semaphore
13:25:33: Found device extension: VK_KHR_external_semaphore_win32
13:25:33: Found device extension: VK_KHR_format_feature_flags2
13:25:33: Found device extension: VK_KHR_fragment_shader_barycentric
13:25:33: Found device extension: VK_KHR_fragment_shading_rate
13:25:33: Found device extension: VK_KHR_get_memory_requirements2
13:25:33: Found device extension: VK_KHR_global_priority
13:25:33: Found device extension: VK_KHR_image_format_list
13:25:33: Found device extension: VK_KHR_imageless_framebuffer
13:25:33: Found device extension: VK_KHR_maintenance1
13:25:33: Found device extension: VK_KHR_maintenance2
13:25:33: Found device extension: VK_KHR_maintenance3
13:25:33: Found device extension: VK_KHR_maintenance4
13:25:33: Found device extension: VK_KHR_multiview
13:25:33: Found device extension: VK_KHR_pipeline_executable_properties
13:25:33: Found device extension: VK_KHR_pipeline_library
13:25:33: Found device extension: VK_KHR_present_id
13:25:33: Found device extension: VK_KHR_present_wait
13:25:33: Found device extension: VK_KHR_push_descriptor
13:25:33: Found device extension: VK_KHR_ray_query
13:25:33: Found device extension: VK_KHR_ray_tracing_maintenance1
13:25:33: Found device extension: VK_KHR_ray_tracing_pipeline
13:25:33: Found device extension: VK_KHR_relaxed_block_layout
13:25:33: Found device extension: VK_KHR_sampler_mirror_clamp_to_edge
13:25:33: Found device extension: VK_KHR_sampler_ycbcr_conversion
13:25:33: Found device extension: VK_KHR_separate_depth_stencil_layouts
13:25:33: Found device extension: VK_KHR_shader_atomic_int64
13:25:33: Found device extension: VK_KHR_shader_clock
13:25:33: Found device extension: VK_KHR_shader_draw_parameters
13:25:33: Found device extension: VK_KHR_shader_float16_int8
13:25:33: Found device extension: VK_KHR_shader_float_controls
13:25:33: Found device extension: VK_KHR_shader_integer_dot_product
13:25:33: Found device extension: VK_KHR_shader_non_semantic_info
13:25:33: Found device extension: VK_KHR_shader_subgroup_extended_types
13:25:33: Found device extension: VK_KHR_shader_subgroup_uniform_control_flow
13:25:33: Found device extension: VK_KHR_shader_terminate_invocation
13:25:33: Found device extension: VK_KHR_spirv_1_4
13:25:33: Found device extension: VK_KHR_storage_buffer_storage_class
13:25:33: Found device extension: VK_KHR_swapchain
13:25:33: Found device extension: VK_KHR_swapchain_mutable_format
13:25:33: Found device extension: VK_KHR_synchronization2
13:25:33: Found device extension: VK_KHR_timeline_semaphore
13:25:33: Found device extension: VK_KHR_uniform_buffer_standard_layout
13:25:33: Found device extension: VK_KHR_variable_pointers
13:25:33: Found device extension: VK_KHR_video_decode_h264
13:25:33: Found device extension: VK_KHR_video_decode_h265
13:25:33: Found device extension: VK_KHR_video_decode_queue
13:25:33: Found device extension: VK_KHR_video_queue
13:25:33: Found device extension: VK_KHR_vulkan_memory_model
13:25:33: Found device extension: VK_KHR_win32_keyed_mutex
13:25:33: Found device extension: VK_KHR_workgroup_memory_explicit_layout
13:25:33: Found device extension: VK_KHR_zero_initialize_workgroup_memory
13:25:33: Found device extension: VK_EXT_4444_formats
13:25:33: Found device extension: VK_EXT_attachment_feedback_loop_layout
13:25:33: Found device extension: VK_EXT_blend_operation_advanced
13:25:33: Found device extension: VK_EXT_border_color_swizzle
13:25:33: Found device extension: VK_EXT_buffer_device_address
13:25:33: Found device extension: VK_EXT_calibrated_timestamps
13:25:33: Found device extension: VK_EXT_color_write_enable
13:25:33: Found device extension: VK_EXT_conditional_rendering
13:25:33: Found device extension: VK_EXT_conservative_rasterization
13:25:33: Found device extension: VK_EXT_custom_border_color
13:25:33: Found device extension: VK_EXT_depth_clamp_zero_one
13:25:33: Found device extension: VK_EXT_depth_clip_control
13:25:33: Found device extension: VK_EXT_depth_clip_enable
13:25:33: Found device extension: VK_EXT_depth_range_unrestricted
13:25:33: Found device extension: VK_EXT_descriptor_buffer
13:25:33: Found device extension: VK_EXT_descriptor_indexing
13:25:33: Found device extension: VK_EXT_discard_rectangles
13:25:33: Found device extension: VK_EXT_extended_dynamic_state
13:25:33: Found device extension: VK_EXT_extended_dynamic_state2
13:25:33: Found device extension: VK_EXT_extended_dynamic_state3
13:25:33: Found device extension: VK_EXT_external_memory_host
13:25:33: Found device extension: VK_EXT_fragment_shader_interlock
13:25:33: Found device extension: VK_EXT_full_screen_exclusive
13:25:33: Found device extension: VK_EXT_global_priority
13:25:33: Found device extension: VK_EXT_global_priority_query
13:25:33: Found device extension: VK_EXT_graphics_pipeline_library
13:25:33: Found device extension: VK_EXT_hdr_metadata
13:25:33: Found device extension: VK_EXT_host_query_reset
13:25:33: Found device extension: VK_EXT_image_2d_view_of_3d
13:25:33: Found device extension: VK_EXT_image_robustness
13:25:33: Found device extension: VK_EXT_image_sliced_view_of_3d
13:25:33: Found device extension: VK_EXT_image_view_min_lod
13:25:33: Found device extension: VK_EXT_index_type_uint8
13:25:33: Found device extension: VK_EXT_inline_uniform_block
13:25:33: Found device extension: VK_EXT_line_rasterization
13:25:33: Found device extension: VK_EXT_load_store_op_none
13:25:33: Found device extension: VK_EXT_memory_budget
13:25:33: Found device extension: VK_EXT_memory_priority
13:25:33: Found device extension: VK_EXT_mesh_shader
13:25:33: Found device extension: VK_EXT_multi_draw
13:25:33: Found device extension: VK_EXT_mutable_descriptor_type
13:25:33: Found device extension: VK_EXT_non_seamless_cube_map
13:25:33: Found device extension: VK_EXT_opacity_micromap
13:25:33: Found device extension: VK_EXT_pageable_device_local_memory
13:25:33: Found device extension: VK_EXT_pci_bus_info
13:25:33: Found device extension: VK_EXT_pipeline_creation_cache_control
13:25:33: Found device extension: VK_EXT_pipeline_creation_feedback
13:25:33: Found device extension: VK_EXT_pipeline_library_group_handles
13:25:33: Found device extension: VK_EXT_pipeline_robustness
13:25:33: Found device extension: VK_EXT_post_depth_coverage
13:25:33: Found device extension: VK_EXT_primitive_topology_list_restart
13:25:33: Found device extension: VK_EXT_primitives_generated_query
13:25:33: Found device extension: VK_EXT_private_data
13:25:33: Found device extension: VK_EXT_provoking_vertex
13:25:33: Found device extension: VK_EXT_queue_family_foreign
13:25:33: Found device extension: VK_EXT_robustness2
13:25:33: Found device extension: VK_EXT_sample_locations
13:25:33: Found device extension: VK_EXT_sampler_filter_minmax
13:25:33: Found device extension: VK_EXT_scalar_block_layout
13:25:33: Found device extension: VK_EXT_separate_stencil_usage
13:25:33: Found device extension: VK_EXT_shader_atomic_float
13:25:33: Found device extension: VK_EXT_shader_demote_to_helper_invocation
13:25:33: Found device extension: VK_EXT_shader_image_atomic_int64
13:25:33: Found device extension: VK_EXT_shader_module_identifier
13:25:33: Found device extension: VK_EXT_shader_object
13:25:33: Found device extension: VK_EXT_shader_subgroup_ballot
13:25:33: Found device extension: VK_EXT_shader_subgroup_vote
13:25:33: Found device extension: VK_EXT_shader_viewport_index_layer
13:25:33: Found device extension: VK_EXT_subgroup_size_control
13:25:33: Found device extension: VK_EXT_texel_buffer_alignment
13:25:33: Found device extension: VK_EXT_tooling_info
13:25:33: Found device extension: VK_EXT_transform_feedback
13:25:33: Found device extension: VK_EXT_vertex_attribute_divisor
13:25:33: Found device extension: VK_EXT_vertex_input_dynamic_state
13:25:33: Found device extension: VK_EXT_ycbcr_2plane_444_formats
13:25:33: Found device extension: VK_EXT_ycbcr_image_arrays
13:25:33: Found device extension: VK_NV_acquire_winrt_display
13:25:33: Found device extension: VK_NV_clip_space_w_scaling
13:25:33: Found device extension: VK_NV_compute_shader_derivatives
13:25:33: Found device extension: VK_NV_cooperative_matrix
13:25:33: Found device extension: VK_NV_copy_memory_indirect
13:25:33: Found device extension: VK_NV_corner_sampled_image
13:25:33: Found device extension: VK_NV_coverage_reduction_mode
13:25:33: Found device extension: VK_NV_cuda_kernel_launch
13:25:33: Found device extension: VK_NV_dedicated_allocation
13:25:33: Found device extension: VK_NV_dedicated_allocation_image_aliasing
13:25:33: Found device extension: VK_NV_device_diagnostic_checkpoints
13:25:33: Found device extension: VK_NV_device_diagnostics_config
13:25:33: Found device extension: VK_NV_device_generated_commands
13:25:33: Found device extension: VK_NV_external_memory
13:25:33: Found device extension: VK_NV_external_memory_win32
13:25:33: Found device extension: VK_NV_fill_rectangle
13:25:33: Found device extension: VK_NV_fragment_coverage_to_color
13:25:33: Found device extension: VK_NV_fragment_shader_barycentric
13:25:33: Found device extension: VK_NV_fragment_shading_rate_enums
13:25:33: Found device extension: VK_NV_framebuffer_mixed_samples
13:25:33: Found device extension: VK_NV_geometry_shader_passthrough
13:25:33: Found device extension: VK_NV_inherited_viewport_scissor
13:25:33: Found device extension: VK_NV_linear_color_attachment
13:25:33: Found device extension: VK_NV_low_latency
13:25:33: Found device extension: VK_NV_memory_decompression
13:25:33: Found device extension: VK_NV_mesh_shader
13:25:33: Found device extension: VK_NV_ray_tracing
13:25:33: Found device extension: VK_NV_ray_tracing_invocation_reorder
13:25:33: Found device extension: VK_NV_representative_fragment_test
13:25:33: Found device extension: VK_NV_sample_mask_override_coverage
13:25:33: Found device extension: VK_NV_scissor_exclusive
13:25:33: Found device extension: VK_NV_shader_image_footprint
13:25:33: Found device extension: VK_NV_shader_sm_builtins
13:25:33: Found device extension: VK_NV_shader_subgroup_partitioned
13:25:33: Found device extension: VK_NV_shading_rate_image
13:25:33: Found device extension: VK_NV_viewport_array2
13:25:33: Found device extension: VK_NV_viewport_swizzle
13:25:33: Found device extension: VK_NV_win32_keyed_mutex
13:25:33: Found device extension: VK_NVX_binary_import
13:25:33: Found device extension: VK_NVX_image_view_handle
13:25:33: Found device extension: VK_NVX_multiview_per_view_attributes
13:25:33: Found device extension: VK_AMD_buffer_marker
13:25:33: Requesting Extension: VK_KHR_16bit_storage
13:25:33: Requesting Extension: VK_KHR_maintenance2
13:25:33: Requesting Extension: VK_KHR_shader_float16_int8
13:25:33: Requesting Extension: VK_KHR_storage_buffer_storage_class
13:25:33: Requesting Extension: VK_EXT_shader_subgroup_vote
13:25:33: Requesting Extension: VK_EXT_shader_viewport_index_layer
13:25:33: Requesting Extension: VK_EXT_debug_marker
13:25:33: Requesting Extension: VK_KHR_swapchain
13:25:34: [Vulkan] API Version: 1.3.242 (0x4030f2)
13:25:34: [Vulkan] Driver Version (raw): 0x85d88000
13:25:34: [Vulkan] Vendor ID: 0x10de
13:25:34: [Vulkan] Device ID: 0x1f08
13:25:34: Registering ResourceManager for type GpuProgram
13:25:34: RenderSystem capabilities
13:25:34: -------------------------
13:25:34: RenderSystem Name: Vulkan Rendering Subsystem
13:25:34: GPU Vendor: nvidia
13:25:34: Device Name: NVIDIA GeForce RTX 2060
13:25:34: Driver Version: 535.98.0.0
13:25:34:  * Fixed function pipeline: no
13:25:34:  * Hardware generation of mipmaps: yes
13:25:34:  * Texture blending: yes
13:25:34:  * Anisotropic texture filtering: yes
13:25:34:  * Dot product texture operation: yes
13:25:34:  * Cube mapping: yes
13:25:34:  * Hardware stencil buffer: yes
13:25:34:    - Stencil depth: 8
13:25:34:    - Two sided stencil support: yes
13:25:34:    - Wrap stencil values: yes
13:25:34:  * Hardware vertex / index buffers: yes
13:25:34:  * 32-bit index buffers: no
13:25:34:  * Vertex programs: no
13:25:34:  * Number of floating-point constants for vertex programs: 256
13:25:34:  * Number of integer constants for vertex programs: 256
13:25:34:  * Number of boolean constants for vertex programs: 256
13:25:34:  * Fragment programs: no
13:25:34:  * Number of floating-point constants for fragment programs: 256
13:25:34:  * Number of integer constants for fragment programs: 256
13:25:34:  * Number of boolean constants for fragment programs: 256
13:25:34:  * Geometry programs: no
13:25:34:  * Number of floating-point constants for geometry programs: 256
13:25:34:  * Number of integer constants for geometry programs: 256
13:25:34:  * Number of boolean constants for geometry programs: 256
13:25:34:  * Tessellation Hull programs: no
13:25:34:  * Number of floating-point constants for tessellation hull programs: 256
13:25:34:  * Number of integer constants for tessellation hull programs: 256
13:25:34:  * Number of boolean constants for tessellation hull programs: 256
13:25:34:  * Tessellation Domain programs: no
13:25:34:  * Number of floating-point constants for tessellation domain programs: 256
13:25:34:  * Number of integer constants for tessellation domain programs: 256
13:25:34:  * Number of boolean constants for tessellation domain programs: 256
13:25:34:  * Compute programs: yes
13:25:34:  * Number of floating-point constants for compute programs: 256
13:25:34:  * Number of integer constants for compute programs: 256
13:25:34:  * Number of boolean constants for compute programs: 256
13:25:34:  * Supported Shader Profiles: glsl glslvk hlsl hlslvk
13:25:34:  * Texture Compression: yes
13:25:34:    - DXT: yes
13:25:34:    - VTC: no
13:25:34:    - PVRTC: no
13:25:34:    - ATC: no
13:25:34:    - ETC1: no
13:25:34:    - ETC2: no
13:25:34:    - BC4/BC5: yes
13:25:34:    - BC6H/BC7: yes
13:25:34:    - ASTC: no
13:25:34:  * Hardware Occlusion Query: no
13:25:34:  * User clip planes: yes
13:25:34:  * VET_UBYTE4 vertex element type: yes
13:25:34:  * Infinite far plane projection: yes
13:25:34:  * Hardware render-to-texture: yes
13:25:34:  * Floating point textures: yes
13:25:34:  * Non-power-of-two textures: yes
13:25:34:  * 1d textures: yes
13:25:34:  * Volume textures: yes
13:25:34:  * Max Texture resolution (2D) 16384
13:25:34:  * Max Texture resolution (3D) 4096
13:25:34:  * Max Texture resolution (Cubemaps) 16384
13:25:34:  * Multiple Render Targets: 1
13:25:34:    - With different bit depths: no
13:25:34:  * Point Sprites: yes
13:25:34:  * Extended point parameters: yes
13:25:34:  * Max Point Size: 256
13:25:34:  * Vertex texture fetch: no
13:25:34:  * Number of world matrices: 0
13:25:34:  * Number of texture units: 32
13:25:34:  * Stencil buffer depth: 8
13:25:34:  * Number of vertex blend matrices: 0
13:25:34:  * Render to Vertex Buffer : no
13:25:34:  * Hardware Atomic Counters: no
13:25:34:  * Shader 16-bit floating point (half): no
13:25:34:  * Compute max threads per threadgroup per axis: 1024, 1024, 64
13:25:34:  * Compute max threads per threadgroup total: 1024
13:25:34:  * Using Reverse Z: yes
13:25:34: Supported memory types for general buffer usage: 31
13:25:34: Supported memory types for reading: 31
13:25:34: VkDevice will use coherent memory buffers: true
13:25:34: VkDevice will use non-coherent memory buffers: false
13:25:34: VkDevice will use coherent memory for reading: true
13:25:34: VkDevice read memory is coherent: true
13:25:36: Trying presentMode = IMMEDIATE_KHR
13:25:36: Chosen presentMode = IMMEDIATE_KHR
13:25:36: surfaceCaps.currentTransform = 1
13:25:36: DefaultWorkQueue('Root') initialising on thread main.
13:25:36:  _hlmsMacroblockCreated 
13:25:36:  _hlmsBlendblockCreated 
13:25:37: Particle Renderer Type 'billboard' registered
13:25:37: Added resource location 'D:\FFx64\ogre resources/2.0/scripts/materials/Common' of type 'FileSystem' to resource group 'General'
13:25:37: Added resource location 'D:\FFx64\ogre resources/2.0/scripts/materials/Common/Any' of type 'FileSystem' to resource group 'General'
13:25:37: Added resource location 'D:\FFx64\ogre resources/2.0/scripts/materials/Common/HLSL' of type 'FileSystem' to resource group 'General'
13:25:37: Added resource location 'D:\FFx64\ogre resources/2.0/scripts/materials/Common/GLSL' of type 'FileSystem' to resource group 'General'
13:25:37: Added resource location 'D:\FFx64\ogre resources/Contents/Resources/2.0/scripts/materials/HDR' of type 'FileSystem' to resource group 'General'
13:25:37: Added resource location 'D:\FFx64\ogre resources/Contents/Resources/2.0/scripts/materials/HDR/HLSL' of type 'FileSystem' to resource group 'General'
13:25:37: Added resource location 'D:\FFx64\ogre resources/Contents/Resources/2.0/scripts/materials/HDR/Metal' of type 'FileSystem' to resource group 'General'
13:25:37: Added resource location 'D:\FFx64\ogre resources/Contents/Resources/2.0/scripts/materials/PbsMaterials' of type 'FileSystem' to resource group 'General'
13:25:37: Added resource location 'D:\FFx64\ogre resources/Hlms/Common/Any' of type 'FileSystem' to resource group 'General'
13:25:37: Added resource location 'D:\FFx64\ogre resources/Hlms/Common/HLSL' of type 'FileSystem' to resource group 'General'
13:25:37: Added resource location 'D:\FFx64\ogre resources/Hlms/Common/GLSL' of type 'FileSystem' to resource group 'General'
13:25:37: Creating resource group Popular
13:25:37: Added resource location 'D:\FFx64\ogre resources/2.0/scripts/Compositors' of type 'FileSystem' to resource group 'Popular'
13:25:37:  _hlmsSamplerblockCreated 
13:25:37:  _hlmsSamplerblockCreated 
13:25:37:  _hlmsSamplerblockCreated 
13:25:37:  _hlmsSamplerblockCreated 
13:25:37: [INFO] Texture cache not found at C:\Users\jw\AppData\Local\FrameForge\Ogre-cache\/textureMetadataCache.json
13:25:37: Parsing scripts for resource group Autodetect
13:25:37: Finished parsing scripts for resource group Autodetect
13:25:37: Creating resources for group Autodetect
13:25:37: All done
13:25:37: Parsing scripts for resource group General
13:25:37: Parsing script Quad.program
13:25:37: Shader Ogre/Compositor/Quad_vs_VK compiled successfully.
13:25:37: Shader Ogre/Compositor/QuadCameraDir_vs_VK compiled successfully.
13:25:37: Shader Ogre/Compositor/QuadCameraDirNoUV_vs_VK compiled successfully.
13:25:38: Parsing script Atmosphere.material
13:25:38: Shader Ogre/Atmo/NprSky_ps_VK compiled successfully.
13:25:38:  _hlmsMacroblockCreated 
13:25:38: Parsing script Copyback.material
13:25:38: Shader Ogre/Copy/4xFP32_ps_VK compiled successfully.
13:25:38:  _hlmsSamplerblockCreated 
13:25:38:  _hlmsSamplerblockCreated 
13:25:38:  _hlmsMacroblockCreated 
13:25:38: Shader Ogre/Copy/4xFP32_2DArray_ps_VK compiled successfully.
13:25:38:  _hlmsSamplerblockCreated 
13:25:38:  _hlmsSamplerblockCreated 
13:25:38: Shader Ogre/Copy/1xFP32_ps_VK compiled successfully.
13:25:38: Shader Ogre/Resolve/1xFP32_Subsample0_ps_VK compiled successfully.
13:25:38:  _hlmsSamplerblockCreated 
13:25:38: Parsing script DepthUtils.material
13:25:38: Shader Ogre/Depth/DownscaleMax_ps_VK compiled successfully.
13:25:38:  _hlmsSamplerblockCreated 
13:25:38:  _hlmsMacroblockCreated 
13:25:38: Parsing script DPM.material
13:25:38: Shader Ogre/DPM/CubeToDpm_4xFP16_ps_VK compiled successfully.
13:25:38:  _hlmsSamplerblockCreated 
13:25:38:  _hlmsSamplerblockCreated 
13:25:38:  _hlmsMacroblockCreated 
13:25:38: Parsing script DPSM.material
13:25:38: Shader Ogre/DPSM/CubeToDpsm_ps_VK compiled successfully.
13:25:38:  _hlmsSamplerblockCreated 
13:25:38: Shader Ogre/DPSM/CubeToDpsm_Colour_ps_VK compiled successfully.
13:25:38:  _hlmsSamplerblockCreated 
13:25:38: Parsing script EsmGaussianBlurLogFilter.material
13:25:38: Shader ESM/GaussianLogFilterH_ps_VK compiled successfully.
13:25:38: Shader ESM/GaussianLogFilterV_ps_VK compiled successfully.
13:25:38:  _hlmsSamplerblockCreated 
13:25:38:  _hlmsSamplerblockCreated 
13:25:38: Parsing script HiddenAreaMeshVr.material
13:25:38: Shader Ogre/VR/HiddenAreaMeshVr_vs_VK compiled successfully.
13:25:38: Shader Ogre/VR/HiddenAreaMeshVr_ps_VK compiled successfully.
13:25:38:  _hlmsBlendblockCreated 
13:25:38: Parsing script JWDepthOfField.material
13:25:38: Shader JW/DoF_ps_vulkan compiled successfully.
13:25:38:  _hlmsSamplerblockCreated 
13:25:38:  _hlmsSamplerblockCreated 
13:25:38:  _hlmsMacroblockCreated 
13:25:38: Parsing script JWMirrorDepth.material
13:25:38: Shader JW/MirrorDepth_ps_vulkan compiled successfully.
13:25:38:  _hlmsSamplerblockCreated 
13:25:38:  _hlmsSamplerblockCreated 
13:25:38:  _hlmsMacroblockCreated 
13:25:38: Parsing script PccDepthCompressor.material
13:25:38: Shader PccDepthCompressor_ps_VK compiled successfully.
13:25:38:  _hlmsSamplerblockCreated 
13:25:38:  _hlmsBlendblockCreated 
13:25:38: Parsing script RadialDensityMask.material
13:25:38: Shader Ogre/Compositor/RadialDensityMask_vs_VK compiled successfully.
13:25:38: Shader Ogre/VR/RadialDensityMask_ps_VK compiled successfully.
13:25:38: Parsing script SelectionHalo.material
13:25:38: Shader JW/SelHalo_ps_VK compiled successfully.
13:25:38:  _hlmsSamplerblockCreated 
13:25:38:  _hlmsSamplerblockCreated 
13:25:38: Parsing script Sky.material
13:25:38: Shader Ogre/Sky/Cubemap_ps_VK compiled successfully.
13:25:38:  _hlmsSamplerblockCreated 
13:25:38:  _hlmsSamplerblockCreated 
13:25:38: Shader Ogre/Sky/Equirectangular_ps_VK compiled successfully.
13:25:38:  _hlmsSamplerblockCreated 
13:25:38: Parsing script EsmGaussianBlurLogFilter.material.json
13:25:38:  _hlmsSamplerblockCreated 
13:25:38: Parsing script Mipmaps.material.json
13:25:38: Finished parsing scripts for resource group General
13:25:38: Creating resources for group General
13:25:38: All done
13:25:38: Parsing scripts for resource group Internal
13:25:38: Finished parsing scripts for resource group Internal
13:25:38: Creating resources for group Internal
13:25:38: All done
13:25:38: Parsing scripts for resource group Popular
13:25:38: Parsing script JWNodes.compositor
13:25:38: Finished parsing scripts for resource group Popular
13:25:38: Creating resources for group Popular
13:25:38: All done
13:25:38: Trying presentMode = FIFO_KHR
13:25:38: Chosen presentMode = FIFO_KHR
13:25:38: surfaceCaps.currentTransform = 1
13:25:39: ERROR: [Validation] Code 0 : Validation Error: [ VUID-VkImageMemoryBarrier-oldLayout-01212 ] Object 0: handle = 0x2c71f0000000006c, type = VK_OBJECT_TYPE_IMAGE; | MessageID = 0xff795e16 | vkCmdPipelineBarrier(): .pImageMemoryBarriers[0].newLayout Image barrier Layout=VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL is not compatible with VkImage 0x2c71f0000000006c[] usage flags 0x10. The Vulkan spec states: If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL then image must have been created with VK_IMAGE_USAGE_TRANSFER_SRC_BIT (https://vulkan.lunarg.com/doc/view/1.3.216.0/windows/1.3-extensions/vkspec.html#VUID-VkImageMemoryBarrier-oldLayout-01212)
13:25:39: ERROR: [Validation] Code 0 : Validation Error: [ VUID-vkCmdCopyImage-srcImage-00126 ] Object 0: handle = 0x2c71f0000000006c, type = VK_OBJECT_TYPE_IMAGE; | MessageID = 0x34d04089 | Invalid usage flag for VkImage 0x2c71f0000000006c[] used by vkCmdCopyImage. In this case, VkImage should have VK_IMAGE_USAGE_TRANSFER_SRC_BIT set during creation. The Vulkan spec states: srcImage must have been created with VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag (https://vulkan.lunarg.com/doc/view/1.3.216.0/windows/1.3-extensions/vkspec.html#VUID-vkCmdCopyImage-srcImage-00126)
13:25:56: Trying presentMode = FIFO_KHR
13:25:56: Chosen presentMode = FIFO_KHR
13:25:56: surfaceCaps.currentTransform = 1
13:25:56: Trying presentMode = FIFO_KHR
13:25:56: Chosen presentMode = FIFO_KHR
13:25:56: surfaceCaps.currentTransform = 1
13:25:56: Trying presentMode = FIFO_KHR
13:25:56: Chosen presentMode = FIFO_KHR
13:25:56: surfaceCaps.currentTransform = 1
13:25:56: Trying presentMode = FIFO_KHR
13:25:56: Chosen presentMode = FIFO_KHR
13:25:56: surfaceCaps.currentTransform = 1
13:25:56: Trying presentMode = FIFO_KHR
13:25:56: Chosen presentMode = FIFO_KHR
13:25:56: surfaceCaps.currentTransform = 1
13:25:56: ERROR: [Validation] Code 0 : Validation Error: [ VUID-VkImageMemoryBarrier-newLayout-01198 ] Object 0: handle = 0x2370942b790, type = VK_OBJECT_TYPE_COMMAND_BUFFER; | MessageID = 0x3880681a | vkCmdPipelineBarrier(): .pImageMemoryBarriers[0].newLayout Image Layout cannot be transitioned to UNDEFINED or PREINITIALIZED. The Vulkan spec states: If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, newLayout must not be VK_IMAGE_LAYOUT_UNDEFINED or VK_IMAGE_LAYOUT_PREINITIALIZED (https://vulkan.lunarg.com/doc/view/1.3.216.0/windows/1.3-extensions/vkspec.html#VUID-VkImageMemoryBarrier-newLayout-01198)
13:25:56: ERROR: [Validation] Code 0 : Validation Error: [ VUID-VkImageMemoryBarrier-oldLayout-01212 ] Object 0: handle = 0x2c71f0000000006c, type = VK_OBJECT_TYPE_IMAGE; | MessageID = 0xff795e16 | vkCmdPipelineBarrier(): .pImageMemoryBarriers[0].oldLayout Image barrier Layout=VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL is not compatible with VkImage 0x2c71f0000000006c[] usage flags 0x10. The Vulkan spec states: If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL then image must have been created with VK_IMAGE_USAGE_TRANSFER_SRC_BIT (https://vulkan.lunarg.com/doc/view/1.3.216.0/windows/1.3-extensions/vkspec.html#VUID-VkImageMemoryBarrier-oldLayout-01212)
13:25:56: ERROR: [Validation] Code 0 : Validation Error: [ UNASSIGNED-CoreValidation-DrawState-InvalidImageLayout ] Object 0: handle = 0x2370942b790, type = VK_OBJECT_TYPE_COMMAND_BUFFER; | MessageID = 0x4dae5635 | vkQueueSubmit(): pSubmits[0].pCommandBuffers[0] command buffer VkCommandBuffer 0x2370942b790[] expects VkImage 0x2c71f0000000006c[] (subresource: aspectMask 0x1 array layer 0, mip level 0) to be in layout VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL--instead, current layout is VK_IMAGE_LAYOUT_UNDEFINED.
13:25:56: Trying presentMode = FIFO_KHR
13:25:56: Chosen presentMode = FIFO_KHR
13:25:56: surfaceCaps.currentTransform = 1
13:25:56: Trying presentMode = FIFO_KHR
13:25:56: Chosen presentMode = FIFO_KHR
13:25:56: surfaceCaps.currentTransform = 1
13:25:57: Trying presentMode = FIFO_KHR
13:25:57: Chosen presentMode = FIFO_KHR
13:25:57: surfaceCaps.currentTransform = 1
13:25:57:  _hlmsMacroblockCreated 
13:25:57:  _hlmsBlendblockCreated 
13:25:57:  _hlmsSamplerblockCreated 
13:25:57:  _hlmsMacroblockCreated 
13:25:57:  _hlmsMacroblockCreated 
13:25:57: Shader 100000000VertexShader_vs compiled successfully.
13:25:57: Shader 100000000PixelShader_ps compiled successfully.
13:25:58: Shader 300000000VertexShader_vs compiled successfully.
13:25:58: Shader 300000000PixelShader_ps compiled successfully.
13:25:58:  _hlmsMacroblockCreated 
13:25:58: ERROR: [Validation] Code 0 : Validation Error: [ VUID-VkImageMemoryBarrier-oldLayout-01212 ] Object 0: handle = 0x5581c500000000d5, type = VK_OBJECT_TYPE_IMAGE; | MessageID = 0xff795e16 | vkCmdPipelineBarrier(): .pImageMemoryBarriers[0].newLayout Image barrier Layout=VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL is not compatible with VkImage 0x5581c500000000d5[] usage flags 0x10. The Vulkan spec states: If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL then image must have been created with VK_IMAGE_USAGE_TRANSFER_SRC_BIT (https://vulkan.lunarg.com/doc/view/1.3.216.0/windows/1.3-extensions/vkspec.html#VUID-VkImageMemoryBarrier-oldLayout-01212)
13:25:58: ERROR: [Validation] Code 0 : Validation Error: [ VUID-vkCmdCopyImage-srcImage-00126 ] Object 0: handle = 0x5581c500000000d5, type = VK_OBJECT_TYPE_IMAGE; | MessageID = 0x34d04089 | Invalid usage flag for VkImage 0x5581c500000000d5[] used by vkCmdCopyImage. In this case, VkImage should have VK_IMAGE_USAGE_TRANSFER_SRC_BIT set during creation. The Vulkan spec states: srcImage must have been created with VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag (https://vulkan.lunarg.com/doc/view/1.3.216.0/windows/1.3-extensions/vkspec.html#VUID-vkCmdCopyImage-srcImage-00126)
13:25:58: ERROR: [Validation] Code 0 : Validation Error: [ VUID-VkImageMemoryBarrier-newLayout-01198 ] Object 0: handle = 0x2377ed44d60, type = VK_OBJECT_TYPE_COMMAND_BUFFER; | MessageID = 0x3880681a | vkCmdPipelineBarrier(): .pImageMemoryBarriers[0].newLayout Image Layout cannot be transitioned to UNDEFINED or PREINITIALIZED. The Vulkan spec states: If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, newLayout must not be VK_IMAGE_LAYOUT_UNDEFINED or VK_IMAGE_LAYOUT_PREINITIALIZED (https://vulkan.lunarg.com/doc/view/1.3.216.0/windows/1.3-extensions/vkspec.html#VUID-VkImageMemoryBarrier-newLayout-01198)
13:25:58: ERROR: [Validation] Code 0 : Validation Error: [ VUID-VkImageMemoryBarrier-oldLayout-01212 ] Object 0: handle = 0x5581c500000000d5, type = VK_OBJECT_TYPE_IMAGE; | MessageID = 0xff795e16 | vkCmdPipelineBarrier(): .pImageMemoryBarriers[0].oldLayout Image barrier Layout=VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL is not compatible with VkImage 0x5581c500000000d5[] usage flags 0x10. The Vulkan spec states: If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL then image must have been created with VK_IMAGE_USAGE_TRANSFER_SRC_BIT (https://vulkan.lunarg.com/doc/view/1.3.216.0/windows/1.3-extensions/vkspec.html#VUID-VkImageMemoryBarrier-oldLayout-01212)
13:25:58: ERROR: [Validation] Code 0 : Validation Error: [ UNASSIGNED-CoreValidation-DrawState-InvalidImageLayout ] Object 0: handle = 0x2377ed44d60, type = VK_OBJECT_TYPE_COMMAND_BUFFER; | MessageID = 0x4dae5635 | vkQueueSubmit(): pSubmits[0].pCommandBuffers[0] command buffer VkCommandBuffer 0x2377ed44d60[] expects VkImage 0x5581c500000000d5[] (subresource: aspectMask 0x1 array layer 0, mip level 0) to be in layout VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL--instead, current layout is VK_IMAGE_LAYOUT_UNDEFINED.
13:25:58: Trying presentMode = FIFO_KHR
13:25:58: Chosen presentMode = FIFO_KHR
13:25:58: surfaceCaps.currentTransform = 1
13:25:58:  _hlmsMacroblockCreated 
13:25:58: workspacePreUpdate with mirrors
13:25:58: passEarlyPreExecute with mirrors
13:25:58: Shader 100000001VertexShader_vs compiled successfully.
13:25:58: Shader 100000001PixelShader_ps compiled successfully.
13:25:58: ERROR: [Validation] Code 0 : Validation Error: [ VUID-VkImageMemoryBarrier-oldLayout-01212 ] Object 0: handle = 0x3f21420000000117, type = VK_OBJECT_TYPE_IMAGE; | MessageID = 0xff795e16 | vkCmdPipelineBarrier(): .pImageMemoryBarriers[0].newLayout Image barrier Layout=VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL is not compatible with VkImage 0x3f21420000000117[] usage flags 0x10. The Vulkan spec states: If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL then image must have been created with VK_IMAGE_USAGE_TRANSFER_SRC_BIT (https://vulkan.lunarg.com/doc/view/1.3.216.0/windows/1.3-extensions/vkspec.html#VUID-VkImageMemoryBarrier-oldLayout-01212)
13:25:58: ERROR: [Validation] Code 0 : Validation Error: [ VUID-vkCmdCopyImage-srcImage-00126 ] Object 0: handle = 0x3f21420000000117, type = VK_OBJECT_TYPE_IMAGE; | MessageID = 0x34d04089 | Invalid usage flag for VkImage 0x3f21420000000117[] used by vkCmdCopyImage. In this case, VkImage should have VK_IMAGE_USAGE_TRANSFER_SRC_BIT set during creation. The Vulkan spec states: srcImage must have been created with VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag (https://vulkan.lunarg.com/doc/view/1.3.216.0/windows/1.3-extensions/vkspec.html#VUID-vkCmdCopyImage-srcImage-00126)
13:25:58: ERROR: [Validation] Code 0 : Validation Error: [ VUID-VkImageMemoryBarrier-newLayout-01198 ] Object 0: handle = 0x2377992ff80, type = VK_OBJECT_TYPE_COMMAND_BUFFER; | MessageID = 0x3880681a | vkCmdPipelineBarrier(): .pImageMemoryBarriers[0].newLayout Image Layout cannot be transitioned to UNDEFINED or PREINITIALIZED. The Vulkan spec states: If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, newLayout must not be VK_IMAGE_LAYOUT_UNDEFINED or VK_IMAGE_LAYOUT_PREINITIALIZED (https://vulkan.lunarg.com/doc/view/1.3.216.0/windows/1.3-extensions/vkspec.html#VUID-VkImageMemoryBarrier-newLayout-01198)
13:25:58: ERROR: [Validation] Code 0 : Validation Error: [ VUID-VkImageMemoryBarrier-oldLayout-01212 ] Object 0: handle = 0x3f21420000000117, type = VK_OBJECT_TYPE_IMAGE; | MessageID = 0xff795e16 | vkCmdPipelineBarrier(): .pImageMemoryBarriers[0].oldLayout Image barrier Layout=VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL is not compatible with VkImage 0x3f21420000000117[] usage flags 0x10. The Vulkan spec states: If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL then image must have been created with VK_IMAGE_USAGE_TRANSFER_SRC_BIT (https://vulkan.lunarg.com/doc/view/1.3.216.0/windows/1.3-extensions/vkspec.html#VUID-VkImageMemoryBarrier-oldLayout-01212)
13:25:58: ERROR: [Validation] Code 0 : Validation Error: [ UNASSIGNED-CoreValidation-DrawState-InvalidImageLayout ] Object 0: handle = 0x2377992ff80, type = VK_OBJECT_TYPE_COMMAND_BUFFER; | MessageID = 0x4dae5635 | vkQueueSubmit(): pSubmits[0].pCommandBuffers[0] command buffer VkCommandBuffer 0x2377992ff80[] expects VkImage 0x3f21420000000117[] (subresource: aspectMask 0x1 array layer 0, mip level 0) to be in layout VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL--instead, current layout is VK_IMAGE_LAYOUT_UNDEFINED.
13:25:58: Trying presentMode = FIFO_KHR
13:25:58: Chosen presentMode = FIFO_KHR
13:25:58: surfaceCaps.currentTransform = 1
13:25:59: Shader 100000002VertexShader_vs compiled successfully.
13:25:59: Shader 100000002PixelShader_ps compiled successfully.
13:25:59: ERROR: [Validation] Code 0 : Validation Error: [ VUID-VkImageMemoryBarrier-oldLayout-01212 ] Object 0: handle = 0xddd419000000030a, type = VK_OBJECT_TYPE_IMAGE; | MessageID = 0xff795e16 | vkCmdPipelineBarrier(): .pImageMemoryBarriers[0].newLayout Image barrier Layout=VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL is not compatible with VkImage 0xddd419000000030a[] usage flags 0x10. The Vulkan spec states: If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL then image must have been created with VK_IMAGE_USAGE_TRANSFER_SRC_BIT (https://vulkan.lunarg.com/doc/view/1.3.216.0/windows/1.3-extensions/vkspec.html#VUID-VkImageMemoryBarrier-oldLayout-01212)
13:25:59: ERROR: [Validation] Code 0 : Validation Error: [ VUID-vkCmdCopyImage-srcImage-00126 ] Object 0: handle = 0xddd419000000030a, type = VK_OBJECT_TYPE_IMAGE; | MessageID = 0x34d04089 | Invalid usage flag for VkImage 0xddd419000000030a[] used by vkCmdCopyImage. In this case, VkImage should have VK_IMAGE_USAGE_TRANSFER_SRC_BIT set during creation. The Vulkan spec states: srcImage must have been created with VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag (https://vulkan.lunarg.com/doc/view/1.3.216.0/windows/1.3-extensions/vkspec.html#VUID-vkCmdCopyImage-srcImage-00126)
13:25:59: ERROR: [Validation] Code 0 : Validation Error: [ VUID-VkImageMemoryBarrier-newLayout-01198 ] Object 0: handle = 0x2370942b790, type = VK_OBJECT_TYPE_COMMAND_BUFFER; | MessageID = 0x3880681a | vkCmdPipelineBarrier(): .pImageMemoryBarriers[0].newLayout Image Layout cannot be transitioned to UNDEFINED or PREINITIALIZED. The Vulkan spec states: If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, newLayout must not be VK_IMAGE_LAYOUT_UNDEFINED or VK_IMAGE_LAYOUT_PREINITIALIZED (https://vulkan.lunarg.com/doc/view/1.3.216.0/windows/1.3-extensions/vkspec.html#VUID-VkImageMemoryBarrier-newLayout-01198)
13:25:59: ERROR: [Validation] Code 0 : Validation Error: [ VUID-VkImageMemoryBarrier-oldLayout-01212 ] Object 0: handle = 0xddd419000000030a, type = VK_OBJECT_TYPE_IMAGE; | MessageID = 0xff795e16 | vkCmdPipelineBarrier(): .pImageMemoryBarriers[0].oldLayout Image barrier Layout=VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL is not compatible with VkImage 0xddd419000000030a[] usage flags 0x10. The Vulkan spec states: If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL then image must have been created with VK_IMAGE_USAGE_TRANSFER_SRC_BIT (https://vulkan.lunarg.com/doc/view/1.3.216.0/windows/1.3-extensions/vkspec.html#VUID-VkImageMemoryBarrier-oldLayout-01212)
13:25:59: ERROR: [Validation] Code 0 : Validation Error: [ UNASSIGNED-CoreValidation-DrawState-InvalidImageLayout ] Object 0: handle = 0x2370942b790, type = VK_OBJECT_TYPE_COMMAND_BUFFER; | MessageID = 0x4dae5635 | vkQueueSubmit(): pSubmits[0].pCommandBuffers[0] command buffer VkCommandBuffer 0x2370942b790[] expects VkImage 0xddd419000000030a[] (subresource: aspectMask 0x1 array layer 0, mip level 0) to be in layout VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL--instead, current layout is VK_IMAGE_LAYOUT_UNDEFINED.
13:25:59: ERROR: [Validation] Code 0 : Validation Error: [ VUID-VkImageMemoryBarrier-oldLayout-01212 ] Object 0: handle = 0xa7cc1e00000000d6, type = VK_OBJECT_TYPE_IMAGE; | MessageID = 0xff795e16 | vkCmdPipelineBarrier(): .pImageMemoryBarriers[0].newLayout Image barrier Layout=VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL is not compatible with VkImage 0xa7cc1e00000000d6[] usage flags 0x10. The Vulkan spec states: If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL then image must have been created with VK_IMAGE_USAGE_TRANSFER_SRC_BIT (https://vulkan.lunarg.com/doc/view/1.3.216.0/windows/1.3-extensions/vkspec.html#VUID-VkImageMemoryBarrier-oldLayout-01212)
13:25:59: ERROR: [Validation] Code 0 : Validation Error: [ VUID-vkCmdCopyImage-srcImage-00126 ] Object 0: handle = 0xa7cc1e00000000d6, type = VK_OBJECT_TYPE_IMAGE; | MessageID = 0x34d04089 | Invalid usage flag for VkImage 0xa7cc1e00000000d6[] used by vkCmdCopyImage. In this case, VkImage should have VK_IMAGE_USAGE_TRANSFER_SRC_BIT set during creation. The Vulkan spec states: srcImage must have been created with VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag (https://vulkan.lunarg.com/doc/view/1.3.216.0/windows/1.3-extensions/vkspec.html#VUID-vkCmdCopyImage-srcImage-00126)
13:25:59:  _hlmsMacroblockCreated 
13:25:59:  _hlmsBlendblockCreated 
13:25:59:  _hlmsSamplerblockCreated 

Code: Select all

13:25:59: ERROR: [Validation] Code 0 : Validation Error: [ UNASSIGNED-CoreValidation-DrawState-InvalidCommandBuffer-VkImage ] Object 0: handle = 0x14170700000000d7, type = VK_OBJECT_TYPE_IMAGE; Object 1: handle = 0x2377992ff80, type = VK_OBJECT_TYPE_COMMAND_BUFFER; | MessageID = 0xf58fd304 | You are adding vkCmdEndRenderPass to VkCommandBuffer 0x2377992ff80[] that is invalid because bound VkImage 0x14170700000000d7[] was destroyed.
13:25:59: ERROR: [Validation] Code 0 : Validation Error: [ UNASSIGNED-CoreValidation-DrawState-InvalidCommandBuffer-VkImage ] Object 0: handle = 0x14170700000000d7, type = VK_OBJECT_TYPE_IMAGE; Object 1: handle = 0x2377992ff80, type = VK_OBJECT_TYPE_COMMAND_BUFFER; | MessageID = 0xf58fd304 | You are adding vkEndCommandBuffer() to VkCommandBuffer 0x2377992ff80[] that is invalid because bound VkImage 0x14170700000000d7[] was destroyed.
13:26:03: ERROR: [Validation] Code 0 : Validation Error: [ VUID-VkImageMemoryBarrier-oldLayout-01212 ] Object 0: handle = 0x2cdb4d000000038b, type = VK_OBJECT_TYPE_IMAGE; | MessageID = 0xff795e16 | vkCmdPipelineBarrier(): .pImageMemoryBarriers[0].newLayout Image barrier Layout=VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL is not compatible with VkImage 0x2cdb4d000000038b[] usage flags 0x10. The Vulkan spec states: If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL then image must have been created with VK_IMAGE_USAGE_TRANSFER_SRC_BIT (https://vulkan.lunarg.com/doc/view/1.3.216.0/windows/1.3-extensions/vkspec.html#VUID-VkImageMemoryBarrier-oldLayout-01212)
13:26:03: ERROR: [Validation] Code 0 : Validation Error: [ VUID-vkCmdCopyImage-srcImage-00126 ] Object 0: handle = 0x2cdb4d000000038b, type = VK_OBJECT_TYPE_IMAGE; | MessageID = 0x34d04089 | Invalid usage flag for VkImage 0x2cdb4d000000038b[] used by vkCmdCopyImage. In this case, VkImage should have VK_IMAGE_USAGE_TRANSFER_SRC_BIT set during creation. The Vulkan spec states: srcImage must have been created with VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag (https://vulkan.lunarg.com/doc/view/1.3.216.0/windows/1.3-extensions/vkspec.html#VUID-vkCmdCopyImage-srcImage-00126)
13:26:03: ERROR: [Validation] Code 0 : Validation Error: [ VUID-VkImageMemoryBarrier-newLayout-01198 ] Object 0: handle = 0x2370942b790, type = VK_OBJECT_TYPE_COMMAND_BUFFER; | MessageID = 0x3880681a | vkCmdPipelineBarrier(): .pImageMemoryBarriers[0].newLayout Image Layout cannot be transitioned to UNDEFINED or PREINITIALIZED. The Vulkan spec states: If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, newLayout must not be VK_IMAGE_LAYOUT_UNDEFINED or VK_IMAGE_LAYOUT_PREINITIALIZED (https://vulkan.lunarg.com/doc/view/1.3.216.0/windows/1.3-extensions/vkspec.html#VUID-VkImageMemoryBarrier-newLayout-01198)
13:26:03: ERROR: [Validation] Code 0 : Validation Error: [ VUID-VkImageMemoryBarrier-oldLayout-01212 ] Object 0: handle = 0x2cdb4d000000038b, type = VK_OBJECT_TYPE_IMAGE; | MessageID = 0xff795e16 | vkCmdPipelineBarrier(): .pImageMemoryBarriers[0].oldLayout Image barrier Layout=VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL is not compatible with VkImage 0x2cdb4d000000038b[] usage flags 0x10. The Vulkan spec states: If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL then image must have been created with VK_IMAGE_USAGE_TRANSFER_SRC_BIT (https://vulkan.lunarg.com/doc/view/1.3.216.0/windows/1.3-extensions/vkspec.html#VUID-VkImageMemoryBarrier-oldLayout-01212)
13:26:03: ERROR: [Validation] Code 0 : Validation Error: [ UNASSIGNED-CoreValidation-DrawState-InvalidImageLayout ] Object 0: handle = 0x2370942b790, type = VK_OBJECT_TYPE_COMMAND_BUFFER; | MessageID = 0x4dae5635 | vkQueueSubmit(): pSubmits[0].pCommandBuffers[0] command buffer VkCommandBuffer 0x2370942b790[] expects VkImage 0x2cdb4d000000038b[] (subresource: aspectMask 0x1 array layer 0, mip level 0) to be in layout VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL--instead, current layout is VK_IMAGE_LAYOUT_UNDEFINED.
13:26:03: OGRE EXCEPTION(3:RenderingAPIException): vkQueueSubmit failed
VkResult = VK_ERROR_DEVICE_LOST in void __cdecl Ogre::VulkanQueue::commitAndNextCommandBuffer(enum Ogre::SubmissionType::SubmissionType) at D:\MoreCode\Ogre\ogre-next-fork\RenderSystems\Vulkan\src\OgreVulkanQueue.cpp (line 1239)
jwwalker
Goblin
Posts: 268
Joined: Thu Aug 12, 2021 10:06 pm
Location: San Diego, CA, USA
x 19

Re: Vulkan error VK_ERROR_DEVICE_LOST

Post by jwwalker »

P.S. If I turn off FSAA, then things start working in 32 bits, but still fail in 64 bits.

User avatar
dark_sylinc
OGRE Team Member
OGRE Team Member
Posts: 5477
Joined: Sat Jul 21, 2007 4:55 pm
Location: Buenos Aires, Argentina
x 1359

Re: Vulkan error VK_ERROR_DEVICE_LOST

Post by dark_sylinc »

OK looking at the error log:

  1. First complaint from validation (which curiously happens right after surfaceCaps.currentTransform = 1) complains you're (Ogre or your app) trying to copy from a texture that cannot be copied from. Are you trying to:
    a. Download the window's contents to CPU?
    b. Download a texture's contents to CPU that uses MSAA?
    c. Generate mipmaps?
  2. Later on it says pImageMemoryBarriers[0].newLayout Image Layout cannot be transitioned to UNDEFINED or PREINITIALIZED. This is very wrong, so I'm going to assume by this point things went really sideways. We should probably try to fix the first problem and hope this second problem is just a sideeffect of things that started on the 1st point.

Aside from answering my questions (Are you trying to Download the window's contents? / Generate mipmaps?) a very powerful debugging tool is to go to RenderSystems/Vulkan/src/OgreVulkanRenderSystem.cpp place a breakpoint here:

Code: Select all

    VKAPI_ATTR VkBool32 VKAPI_CALL dbgFunc( VkFlags msgFlags, VkDebugReportObjectTypeEXT objType,
                                            uint64_t srcObject, size_t location, int32_t msgCode,
                                            const char *pLayerPrefix, const char *pMsg, void *pUserData )
{
// breakpoint here
}

This will let you hook the debugger exactly when the validation started complaining; and you walk the stack upwards to see what was Ogre doing, which textures are involved, and what your code was doing. That can put a lot of context.

jwwalker
Goblin
Posts: 268
Joined: Thu Aug 12, 2021 10:06 pm
Location: San Diego, CA, USA
x 19

Re: Vulkan error VK_ERROR_DEVICE_LOST

Post by jwwalker »

I'm trying to copy the window's content to another texture, so I thought that would stay on the GPU. But when I put a breakpoint on dbgFunc, I do see that it's happening when I call TextureGpu::copyTo, and the last Ogre function on the call stack before it hits a bunch of Vulkan internals is VulkanQueue::prepareForDownload.

User avatar
dark_sylinc
OGRE Team Member
OGRE Team Member
Posts: 5477
Joined: Sat Jul 21, 2007 4:55 pm
Location: Buenos Aires, Argentina
x 1359

Re: Vulkan error VK_ERROR_DEVICE_LOST

Post by dark_sylinc »

I'm looking at the code and the Vulkan backend does not set VK_IMAGE_USAGE_TRANSFER_SRC_BIT for the swapchain, which means it cannot be used to be copied from.

However this leaves me wondering how on Earth is it that our Unit tests didn't catch this (we rely on this functionality) and Window::canDownloadData() was specifically written for cases like this one.

There's definitely something wrong in Ogre.

Are you able to temporarily disable your copy code and see if that's all of the problems? Window textures are a special case so if you try to do much with it the API abstraction start to leak (a lot) like in this example (Still this looks like an OgreNext bug).

jwwalker
Goblin
Posts: 268
Joined: Thu Aug 12, 2021 10:06 pm
Location: San Diego, CA, USA
x 19

Re: Vulkan error VK_ERROR_DEVICE_LOST

Post by jwwalker »

If I disable the copies, then things work, except for a performance warning saying "vertex shader writes to output location 0.0 which is not consumed by fragment shader". If I just go past that warning, things seem to be working. But it would be great if Ogre could be fixed to make the copies work.

jwwalker
Goblin
Posts: 268
Joined: Thu Aug 12, 2021 10:06 pm
Location: San Diego, CA, USA
x 19

Re: Vulkan error VK_ERROR_DEVICE_LOST

Post by jwwalker »

dark_sylinc wrote: Mon Jun 12, 2023 11:08 pm

However this leaves me wondering how on Earth is it that our Unit tests didn't catch this (we rely on this functionality) and Window::canDownloadData() was specifically written for cases like this one.

The base implementation of Window::canDownloadData() just returns true, and it is not overridden in VulkanWindow or any of its subclasses.

User avatar
dark_sylinc
OGRE Team Member
OGRE Team Member
Posts: 5477
Joined: Sat Jul 21, 2007 4:55 pm
Location: Buenos Aires, Argentina
x 1359

Re: Vulkan error VK_ERROR_DEVICE_LOST

Post by dark_sylinc »

Ok that was a bit painful and filled with lots of swearing, but it is done: https://github.com/OGRECave/ogre-next/c ... 393c87a501

Note: Downloading the depth buffer is broken in Vulkan if the Depth Buffer has both Depth and Stencil. It's equally broken on Metal for the same reason.

Edit: Could this have been the cause of the device lost error? Yes, absolutely. Very likely.

jwwalker
Goblin
Posts: 268
Joined: Thu Aug 12, 2021 10:06 pm
Location: San Diego, CA, USA
x 19

Re: Vulkan error VK_ERROR_DEVICE_LOST

Post by jwwalker »

dark_sylinc wrote: Tue Jun 13, 2023 12:44 am

Ok that was a bit painful and filled with lots of swearing, but it is done: https://github.com/OGRECave/ogre-next/c ... 393c87a501

Thanks for your quick work! However, I'm still getting Vulkan errors, now when rendering:

Code: Select all

Validation Error: [ UNASSIGNED-CoreValidation-DrawState-InvalidImageLayout ] Object 0: handle = 0x1b74d58edc0, type = VK_OBJECT_TYPE_COMMAND_BUFFER; | MessageID = 0x4dae5635 | vkQueueSubmit(): pSubmits[0].pCommandBuffers[0] command buffer VkCommandBuffer 0x1b74d58edc0[] expects VkImage 0x2860e200000000bb[] (subresource: aspectMask 0x1 array layer 0, mip level 0) to be in layout VK_IMAGE_LAYOUT_PRESENT_SRC_KHR--instead, current layout is VK_IMAGE_LAYOUT_UNDEFINED.

Call stack:

Code: Select all

RenderSystem_Vulkan_d.dll!Ogre::dbgFunc(unsigned int msgFlags, VkDebugReportObjectTypeEXT objType, unsigned __int64 srcObject, unsigned __int64 location, int msgCode, const char * pLayerPrefix, const char * pMsg, void * pUserData) Line 116	C++
VkLayer_khronos_validation.dll!debug_log_msg(const _debug_report_data * debug_data, unsigned int msg_flags, const LogObjectList & objects, const char * layer_prefix, const char * message, const char * text_vuid) Line 485	C++
VkLayer_khronos_validation.dll!LogMsgLocked(const _debug_report_data * debug_data, unsigned int msg_flags, const LogObjectList & objects, const std::string & vuid_text, char * err_msg) Line 739	C++
VkLayer_khronos_validation.dll!ValidationObject::LogError<VkCommandBuffer_T *>(VkCommandBuffer_T * src_object, const std::string & vuid_text, const char * format, ...) Line 3647	C++
VkLayer_khronos_validation.dll!CoreChecks::ValidateCmdBufImageLayouts(const core_error::Location & loc, const CMD_BUFFER_STATE * pCB, robin_hood::detail::Table<0,80,IMAGE_STATE const *,layer_data::optional<GlobalImageLayoutRangeMap>,robin_hood::hash<IMAGE_STATE const *,void>,std::equal_to<IMAGE_STATE const *>> & overlayLayoutMap) Line 4479	C++
VkLayer_khronos_validation.dll!CommandBufferSubmitState::Validate(const core_error::Location & loc, const CMD_BUFFER_STATE & cb_node, unsigned int perf_pass) Line 4789	C++
VkLayer_khronos_validation.dll!CoreChecks::PreCallValidateQueueSubmit(VkQueue_T * queue, unsigned int submitCount, const VkSubmitInfo * pSubmits, VkFence_T * fence) Line 4868	C++
VkLayer_khronos_validation.dll!vulkan_layer_chassis::QueueSubmit(VkQueue_T * queue, unsigned int submitCount, const VkSubmitInfo * pSubmits, VkFence_T * fence) Line 1147	C++
[External Code]	
RenderSystem_Vulkan_d.dll!Ogre::VulkanQueue::commitAndNextCommandBuffer(Ogre::SubmissionType::SubmissionType submissionType) Line 1240	C++
RenderSystem_Vulkan_d.dll!Ogre::VulkanDevice::commitAndNextCommandBuffer(Ogre::SubmissionType::SubmissionType submissionType) Line 677	C++
RenderSystem_Vulkan_d.dll!Ogre::VulkanRenderSystem::_endFrameOnce() Line 1896	C++
OgreMain_d.dll!Ogre::CompositorManager2::_swapAllFinalTargets() Line 828	C++
OgreMain_d.dll!Ogre::Root::_updateAllRenderTargets() Line 1578	C++
OgreMain_d.dll!Ogre::Root::renderOneFrame() Line 1102	C++
dark_sylinc wrote: Tue Jun 13, 2023 12:44 am

Note: Downloading the depth buffer is broken in Vulkan if the Depth Buffer has both Depth and Stencil. It's equally broken on Metal for the same reason.

When you say "the the Depth Buffer has both Depth and Stencil", does that include any case where the depth pixel format is PFG_D32_FLOAT_S8X24_UINT, or only cases where the stencil is actually being used for something? Because at least on Metal, I can copy a depth buffer of format PFG_D32_FLOAT_S8X24_UINT to another texture of the same format, and later download the copy to CPU memory, and that seems to work just fine.

jwwalker
Goblin
Posts: 268
Joined: Thu Aug 12, 2021 10:06 pm
Location: San Diego, CA, USA
x 19

Re: Vulkan error VK_ERROR_DEVICE_LOST

Post by jwwalker »

Oh, never mind what I said about being able to read from the depth buffer in Metal... Now I remember that last year I hacked my version of OgreMetalAsyncTextureTicket.mm to add the flag MTLBlitOptionDepthFromDepthStencil when reading from a depth buffer.

jwwalker
Goblin
Posts: 268
Joined: Thu Aug 12, 2021 10:06 pm
Location: San Diego, CA, USA
x 19

Re: Vulkan error VK_ERROR_DEVICE_LOST

Post by jwwalker »

The validation error above was when running in 64 bits. But in 32 bits, the behavior is different: First, there is a break on dbgFunc saying

Code: Select all

windows_read_data_files_in_registry: Registry lookup failed to get layer manifest files.

If I go past that, then when attempting to render, I don't get a breakpoint hit in dbgFunc, but my Ogre.log shows:

Code: Select all

10:41:56: OGRE EXCEPTION(3:RenderingAPIException): vkQueueSubmit failed
VkResult = VK_ERROR_DEVICE_LOST in void __thiscall Ogre::VulkanQueue::commitAndNextCommandBuffer(enum Ogre::SubmissionType::SubmissionType) at D:\MoreCode\Ogre\ogre-next-fork\RenderSystems\Vulkan\src\OgreVulkanQueue.cpp (line 1241)
jwwalker
Goblin
Posts: 268
Joined: Thu Aug 12, 2021 10:06 pm
Location: San Diego, CA, USA
x 19

Re: Vulkan error VK_ERROR_DEVICE_LOST

Post by jwwalker »

Let me recapitulate my current Vulkan situation:

  • 32 bit, no copying of window content: all seems well

  • 32 bit, copying of window content: a vkQueueSubmit error VK_ERROR_DEVICE_LOST during rendering, after a previous copy of content of a different window

  • 64 bit, whether or not window content is copied: a validation error happens during Root::createRenderWindow.

64 bit Ogre.log:

Code: Select all

13:26:24: Creating resource group General
13:26:24: Creating resource group Internal
13:26:24: Creating resource group Autodetect
13:26:24: SceneManagerFactory for type 'DefaultSceneManager' registered.
13:26:24: Registering ResourceManager for type Material
13:26:24: Registering ResourceManager for type Mesh
13:26:24: Registering ResourceManager for type Mesh2
13:26:24: Registering ResourceManager for type OldSkeleton
13:26:24: MovableObjectFactory for type 'ParticleSystem' registered.
13:26:24: ArchiveFactory for archive type FileSystem registered.
13:26:24: ArchiveFactory for archive type Zip registered.
13:26:24: ArchiveFactory for archive type EmbeddedZip registered.
13:26:24: DDS codec registering
13:26:24: FreeImage version: 3.18.0
13:26:24: This program uses FreeImage, a free, open source image library supporting all common bitmap formats. See http://freeimage.sourceforge.net for details
13:26:24: Supported formats: bmp,ico,jpg,jif,jpeg,jpe,jng,koa,iff,lbm,mng,pbm,pbm,pcd,pcx,pgm,pgm,png,ppm,ppm,ras,tga,targa,tif,tiff,wap,wbmp,wbm,psd,psb,cut,xbm,xpm,gif,hdr,g3,sgi,rgb,rgba,bw,exr,j2k,j2c,jp2,pfm,pct,pict,pic,3fr,arw,bay,bmq,cap,cine,cr2,crw,cs1,dc2,dcr,drf,dsc,dng,erf,fff,ia,iiq,k25,kc2,kdc,mdc,mef,mos,mrw,nef,nrw,orf,pef,ptx,pxn,qtk,raf,raw,rdc,rw2,rwl,rwz,sr2,srf,srw,sti,x3f,webp
13:26:24: ETC codec registering
13:26:24: OITD codec registering
13:26:24: Registering ResourceManager for type HighLevelGpuProgram
13:26:24: MovableObjectFactory for type 'Decal' registered.
13:26:24: MovableObjectFactory for type 'InternalCubemapProbe' registered.
13:26:24: MovableObjectFactory for type 'Entity' registered.
13:26:24: MovableObjectFactory for type 'Item' registered.
13:26:24: MovableObjectFactory for type 'Light' registered.
13:26:24: MovableObjectFactory for type 'Rectangle2Dv2' registered.
13:26:24: MovableObjectFactory for type 'BillboardSet' registered.
13:26:24: MovableObjectFactory for type 'ManualObject2' registered.
13:26:24: MovableObjectFactory for type 'BillboardChain' registered.
13:26:24: MovableObjectFactory for type 'RibbonTrail' registered.
13:26:24: MovableObjectFactory for type 'WireAabb' registered.
13:26:24: *-*-* OGRE Initialising
13:26:24: *-*-* Version 3.0.0unstable (E)
13:26:24: Loading library D:\FFx64\RenderSystem_Vulkan_d.dll
13:26:24: Installing plugin: Vulkan RenderSystem
13:26:24: [Vulkan] Initializing VkInstance
13:26:24: Found instance extension: VK_KHR_device_group_creation
13:26:24: Found instance extension: VK_KHR_display
13:26:24: Found instance extension: VK_KHR_external_fence_capabilities
13:26:24: Found instance extension: VK_KHR_external_memory_capabilities
13:26:24: Found instance extension: VK_KHR_external_semaphore_capabilities
13:26:24: Found instance extension: VK_KHR_get_display_properties2
13:26:24: Found instance extension: VK_KHR_get_physical_device_properties2
13:26:24: Found instance extension: VK_KHR_get_surface_capabilities2
13:26:24: Found instance extension: VK_KHR_surface
13:26:24: Found instance extension: VK_KHR_surface_protected_capabilities
13:26:24: Found instance extension: VK_KHR_win32_surface
13:26:24: Found instance extension: VK_EXT_debug_report
13:26:24: Found instance extension: VK_EXT_debug_utils
13:26:24: Found instance extension: VK_EXT_direct_mode_display
13:26:24: Found instance extension: VK_EXT_swapchain_colorspace
13:26:24: Found instance extension: VK_NV_external_memory_capabilities
13:26:24: Found instance extension: VK_KHR_portability_enumeration
13:26:24: Found instance extension: VK_LUNARG_direct_driver_loading
13:26:24: Found instance layer: VK_LAYER_NV_optimus
13:26:24: Found instance layer: VK_LAYER_LUNARG_api_dump
13:26:24: Found instance layer: VK_LAYER_LUNARG_gfxreconstruct
13:26:24: Found instance layer: VK_LAYER_KHRONOS_synchronization2
13:26:24: Found instance layer: VK_LAYER_KHRONOS_validation
13:26:24: Found instance layer: VK_LAYER_LUNARG_monitor
13:26:24: Found instance layer: VK_LAYER_LUNARG_screenshot
13:26:24: Found instance layer: VK_LAYER_KHRONOS_profiles
13:26:24: Found instance layer: VK_LAYER_KHRONOS_shader_object
13:26:24: Requesting Instance Extension: VK_KHR_get_physical_device_properties2
13:26:24: Requesting Instance Extension: VK_KHR_win32_surface
13:26:24: Requesting Instance Extension: VK_EXT_debug_report
13:26:24: Requesting Instance Extension: VK_EXT_debug_utils
13:26:24: Requesting Instance Extension: VK_KHR_surface
13:26:24: [Vulkan] Found 1 devices
13:26:24: [Vulkan] Found devices:
13:26:24: NVIDIA GeForce RTX 2060 #0
13:26:24: [Vulkan] Found 1 devices
13:26:24: [Vulkan] Found devices:
13:26:24: NVIDIA GeForce RTX 2060 #0
13:26:24: Plugin successfully installed
13:26:24: CPU Identifier & Features
13:26:24: -------------------------
13:26:24:  *   CPU ID: GenuineIntel: Intel(R) Core(TM) i7-9700K CPU @ 3.60GHz
13:26:24:  *   Logical cores: 8
13:26:24:  *      SSE: yes
13:26:24:  *     SSE2: yes
13:26:24:  *     SSE3: yes
13:26:24:  *      MMX: yes
13:26:24:  *   MMXEXT: yes
13:26:24:  *    3DNOW: no
13:26:24:  * 3DNOWEXT: no
13:26:24:  *     CMOV: yes
13:26:24:  *      TSC: yes
13:26:24:  *      FPU: yes
13:26:24:  *      PRO: yes
13:26:24:  *       HT: no
13:26:24: -------------------------
13:26:24: [Vulkan] Found 1 devices
13:26:24: [Vulkan] Selecting device 0
13:26:24: Found device extension: VK_KHR_16bit_storage
13:26:24: Found device extension: VK_KHR_8bit_storage
13:26:24: Found device extension: VK_KHR_acceleration_structure
13:26:24: Found device extension: VK_KHR_bind_memory2
13:26:24: Found device extension: VK_KHR_buffer_device_address
13:26:24: Found device extension: VK_KHR_copy_commands2
13:26:24: Found device extension: VK_KHR_create_renderpass2
13:26:24: Found device extension: VK_KHR_dedicated_allocation
13:26:24: Found device extension: VK_KHR_deferred_host_operations
13:26:24: Found device extension: VK_KHR_depth_stencil_resolve
13:26:24: Found device extension: VK_KHR_descriptor_update_template
13:26:24: Found device extension: VK_KHR_device_group
13:26:24: Found device extension: VK_KHR_draw_indirect_count
13:26:24: Found device extension: VK_KHR_driver_properties
13:26:24: Found device extension: VK_KHR_dynamic_rendering
13:26:24: Found device extension: VK_KHR_external_fence
13:26:24: Found device extension: VK_KHR_external_fence_win32
13:26:24: Found device extension: VK_KHR_external_memory
13:26:24: Found device extension: VK_KHR_external_memory_win32
13:26:24: Found device extension: VK_KHR_external_semaphore
13:26:24: Found device extension: VK_KHR_external_semaphore_win32
13:26:24: Found device extension: VK_KHR_format_feature_flags2
13:26:24: Found device extension: VK_KHR_fragment_shader_barycentric
13:26:24: Found device extension: VK_KHR_fragment_shading_rate
13:26:24: Found device extension: VK_KHR_get_memory_requirements2
13:26:24: Found device extension: VK_KHR_global_priority
13:26:24: Found device extension: VK_KHR_image_format_list
13:26:24: Found device extension: VK_KHR_imageless_framebuffer
13:26:24: Found device extension: VK_KHR_maintenance1
13:26:24: Found device extension: VK_KHR_maintenance2
13:26:24: Found device extension: VK_KHR_maintenance3
13:26:24: Found device extension: VK_KHR_maintenance4
13:26:24: Found device extension: VK_KHR_multiview
13:26:24: Found device extension: VK_KHR_pipeline_executable_properties
13:26:24: Found device extension: VK_KHR_pipeline_library
13:26:24: Found device extension: VK_KHR_present_id
13:26:24: Found device extension: VK_KHR_present_wait
13:26:24: Found device extension: VK_KHR_push_descriptor
13:26:24: Found device extension: VK_KHR_ray_query
13:26:24: Found device extension: VK_KHR_ray_tracing_maintenance1
13:26:24: Found device extension: VK_KHR_ray_tracing_pipeline
13:26:24: Found device extension: VK_KHR_relaxed_block_layout
13:26:24: Found device extension: VK_KHR_sampler_mirror_clamp_to_edge
13:26:24: Found device extension: VK_KHR_sampler_ycbcr_conversion
13:26:24: Found device extension: VK_KHR_separate_depth_stencil_layouts
13:26:24: Found device extension: VK_KHR_shader_atomic_int64
13:26:24: Found device extension: VK_KHR_shader_clock
13:26:24: Found device extension: VK_KHR_shader_draw_parameters
13:26:24: Found device extension: VK_KHR_shader_float16_int8
13:26:24: Found device extension: VK_KHR_shader_float_controls
13:26:24: Found device extension: VK_KHR_shader_integer_dot_product
13:26:24: Found device extension: VK_KHR_shader_non_semantic_info
13:26:24: Found device extension: VK_KHR_shader_subgroup_extended_types
13:26:24: Found device extension: VK_KHR_shader_subgroup_uniform_control_flow
13:26:24: Found device extension: VK_KHR_shader_terminate_invocation
13:26:24: Found device extension: VK_KHR_spirv_1_4
13:26:24: Found device extension: VK_KHR_storage_buffer_storage_class
13:26:24: Found device extension: VK_KHR_swapchain
13:26:24: Found device extension: VK_KHR_swapchain_mutable_format
13:26:24: Found device extension: VK_KHR_synchronization2
13:26:24: Found device extension: VK_KHR_timeline_semaphore
13:26:24: Found device extension: VK_KHR_uniform_buffer_standard_layout
13:26:24: Found device extension: VK_KHR_variable_pointers
13:26:24: Found device extension: VK_KHR_video_decode_h264
13:26:24: Found device extension: VK_KHR_video_decode_h265
13:26:24: Found device extension: VK_KHR_video_decode_queue
13:26:24: Found device extension: VK_KHR_video_queue
13:26:24: Found device extension: VK_KHR_vulkan_memory_model
13:26:24: Found device extension: VK_KHR_win32_keyed_mutex
13:26:24: Found device extension: VK_KHR_workgroup_memory_explicit_layout
13:26:24: Found device extension: VK_KHR_zero_initialize_workgroup_memory
13:26:24: Found device extension: VK_EXT_4444_formats
13:26:24: Found device extension: VK_EXT_attachment_feedback_loop_layout
13:26:24: Found device extension: VK_EXT_blend_operation_advanced
13:26:24: Found device extension: VK_EXT_border_color_swizzle
13:26:24: Found device extension: VK_EXT_buffer_device_address
13:26:24: Found device extension: VK_EXT_calibrated_timestamps
13:26:24: Found device extension: VK_EXT_color_write_enable
13:26:24: Found device extension: VK_EXT_conditional_rendering
13:26:24: Found device extension: VK_EXT_conservative_rasterization
13:26:24: Found device extension: VK_EXT_custom_border_color
13:26:24: Found device extension: VK_EXT_depth_clamp_zero_one
13:26:24: Found device extension: VK_EXT_depth_clip_control
13:26:24: Found device extension: VK_EXT_depth_clip_enable
13:26:24: Found device extension: VK_EXT_depth_range_unrestricted
13:26:24: Found device extension: VK_EXT_descriptor_buffer
13:26:24: Found device extension: VK_EXT_descriptor_indexing
13:26:24: Found device extension: VK_EXT_discard_rectangles
13:26:24: Found device extension: VK_EXT_extended_dynamic_state
13:26:24: Found device extension: VK_EXT_extended_dynamic_state2
13:26:24: Found device extension: VK_EXT_extended_dynamic_state3
13:26:24: Found device extension: VK_EXT_external_memory_host
13:26:24: Found device extension: VK_EXT_fragment_shader_interlock
13:26:24: Found device extension: VK_EXT_full_screen_exclusive
13:26:24: Found device extension: VK_EXT_global_priority
13:26:24: Found device extension: VK_EXT_global_priority_query
13:26:24: Found device extension: VK_EXT_graphics_pipeline_library
13:26:24: Found device extension: VK_EXT_hdr_metadata
13:26:24: Found device extension: VK_EXT_host_query_reset
13:26:24: Found device extension: VK_EXT_image_2d_view_of_3d
13:26:24: Found device extension: VK_EXT_image_robustness
13:26:24: Found device extension: VK_EXT_image_sliced_view_of_3d
13:26:24: Found device extension: VK_EXT_image_view_min_lod
13:26:24: Found device extension: VK_EXT_index_type_uint8
13:26:24: Found device extension: VK_EXT_inline_uniform_block
13:26:24: Found device extension: VK_EXT_line_rasterization
13:26:24: Found device extension: VK_EXT_load_store_op_none
13:26:24: Found device extension: VK_EXT_memory_budget
13:26:24: Found device extension: VK_EXT_memory_priority
13:26:24: Found device extension: VK_EXT_mesh_shader
13:26:24: Found device extension: VK_EXT_multi_draw
13:26:24: Found device extension: VK_EXT_mutable_descriptor_type
13:26:24: Found device extension: VK_EXT_non_seamless_cube_map
13:26:24: Found device extension: VK_EXT_opacity_micromap
13:26:24: Found device extension: VK_EXT_pageable_device_local_memory
13:26:24: Found device extension: VK_EXT_pci_bus_info
13:26:24: Found device extension: VK_EXT_pipeline_creation_cache_control
13:26:24: Found device extension: VK_EXT_pipeline_creation_feedback
13:26:24: Found device extension: VK_EXT_pipeline_library_group_handles
13:26:24: Found device extension: VK_EXT_pipeline_robustness
13:26:24: Found device extension: VK_EXT_post_depth_coverage
13:26:24: Found device extension: VK_EXT_primitive_topology_list_restart
13:26:24: Found device extension: VK_EXT_primitives_generated_query
13:26:24: Found device extension: VK_EXT_private_data
13:26:24: Found device extension: VK_EXT_provoking_vertex
13:26:24: Found device extension: VK_EXT_queue_family_foreign
13:26:24: Found device extension: VK_EXT_robustness2
13:26:24: Found device extension: VK_EXT_sample_locations
13:26:24: Found device extension: VK_EXT_sampler_filter_minmax
13:26:24: Found device extension: VK_EXT_scalar_block_layout
13:26:24: Found device extension: VK_EXT_separate_stencil_usage
13:26:24: Found device extension: VK_EXT_shader_atomic_float
13:26:24: Found device extension: VK_EXT_shader_demote_to_helper_invocation
13:26:24: Found device extension: VK_EXT_shader_image_atomic_int64
13:26:24: Found device extension: VK_EXT_shader_module_identifier
13:26:24: Found device extension: VK_EXT_shader_object
13:26:24: Found device extension: VK_EXT_shader_subgroup_ballot
13:26:24: Found device extension: VK_EXT_shader_subgroup_vote
13:26:24: Found device extension: VK_EXT_shader_viewport_index_layer
13:26:24: Found device extension: VK_EXT_subgroup_size_control
13:26:24: Found device extension: VK_EXT_texel_buffer_alignment
13:26:24: Found device extension: VK_EXT_tooling_info
13:26:24: Found device extension: VK_EXT_transform_feedback
13:26:24: Found device extension: VK_EXT_vertex_attribute_divisor
13:26:24: Found device extension: VK_EXT_vertex_input_dynamic_state
13:26:24: Found device extension: VK_EXT_ycbcr_2plane_444_formats
13:26:24: Found device extension: VK_EXT_ycbcr_image_arrays
13:26:24: Found device extension: VK_NV_acquire_winrt_display
13:26:24: Found device extension: VK_NV_clip_space_w_scaling
13:26:24: Found device extension: VK_NV_compute_shader_derivatives
13:26:24: Found device extension: VK_NV_cooperative_matrix
13:26:24: Found device extension: VK_NV_copy_memory_indirect
13:26:24: Found device extension: VK_NV_corner_sampled_image
13:26:24: Found device extension: VK_NV_coverage_reduction_mode
13:26:24: Found device extension: VK_NV_cuda_kernel_launch
13:26:24: Found device extension: VK_NV_dedicated_allocation
13:26:24: Found device extension: VK_NV_dedicated_allocation_image_aliasing
13:26:24: Found device extension: VK_NV_device_diagnostic_checkpoints
13:26:24: Found device extension: VK_NV_device_diagnostics_config
13:26:24: Found device extension: VK_NV_device_generated_commands
13:26:24: Found device extension: VK_NV_external_memory
13:26:24: Found device extension: VK_NV_external_memory_win32
13:26:24: Found device extension: VK_NV_fill_rectangle
13:26:24: Found device extension: VK_NV_fragment_coverage_to_color
13:26:24: Found device extension: VK_NV_fragment_shader_barycentric
13:26:24: Found device extension: VK_NV_fragment_shading_rate_enums
13:26:24: Found device extension: VK_NV_framebuffer_mixed_samples
13:26:24: Found device extension: VK_NV_geometry_shader_passthrough
13:26:24: Found device extension: VK_NV_inherited_viewport_scissor
13:26:24: Found device extension: VK_NV_linear_color_attachment
13:26:24: Found device extension: VK_NV_low_latency
13:26:24: Found device extension: VK_NV_memory_decompression
13:26:24: Found device extension: VK_NV_mesh_shader
13:26:24: Found device extension: VK_NV_ray_tracing
13:26:24: Found device extension: VK_NV_ray_tracing_invocation_reorder
13:26:24: Found device extension: VK_NV_representative_fragment_test
13:26:24: Found device extension: VK_NV_sample_mask_override_coverage
13:26:24: Found device extension: VK_NV_scissor_exclusive
13:26:24: Found device extension: VK_NV_shader_image_footprint
13:26:24: Found device extension: VK_NV_shader_sm_builtins
13:26:24: Found device extension: VK_NV_shader_subgroup_partitioned
13:26:24: Found device extension: VK_NV_shading_rate_image
13:26:24: Found device extension: VK_NV_viewport_array2
13:26:24: Found device extension: VK_NV_viewport_swizzle
13:26:24: Found device extension: VK_NV_win32_keyed_mutex
13:26:24: Found device extension: VK_NVX_binary_import
13:26:24: Found device extension: VK_NVX_image_view_handle
13:26:24: Found device extension: VK_NVX_multiview_per_view_attributes
13:26:24: Found device extension: VK_AMD_buffer_marker
13:26:24: Requesting Extension: VK_KHR_16bit_storage
13:26:24: Requesting Extension: VK_KHR_maintenance2
13:26:24: Requesting Extension: VK_KHR_shader_float16_int8
13:26:24: Requesting Extension: VK_KHR_storage_buffer_storage_class
13:26:24: Requesting Extension: VK_EXT_shader_subgroup_vote
13:26:24: Requesting Extension: VK_EXT_shader_viewport_index_layer
13:26:24: Requesting Extension: VK_EXT_debug_marker
13:26:24: Requesting Extension: VK_KHR_swapchain
13:26:25: [Vulkan] API Version: 1.3.242 (0x4030f2)
13:26:25: [Vulkan] Driver Version (raw): 0x85d88000
13:26:25: [Vulkan] Vendor ID: 0x10de
13:26:25: [Vulkan] Device ID: 0x1f08
13:26:54: ERROR: [Validation] Code 0 : Validation Error: [ VUID-vkGetPhysicalDeviceFormatProperties-format-parameter ] Object 0: VK_NULL_HANDLE, type = VK_OBJECT_TYPE_DEVICE; | MessageID = 0x4addcb92 | vkGetPhysicalDeviceFormatProperties: value of format (1000054000) does not fall within the begin..end range of the core VkFormat enumeration tokens and is not an extension added token. The Vulkan spec states: format must be a valid VkFormat value (https://vulkan.lunarg.com/doc/view/1.3.250.0/windows/1.3-extensions/vkspec.html#VUID-vkGetPhysicalDeviceFormatProperties-format-parameter)
jwwalker
Goblin
Posts: 268
Joined: Thu Aug 12, 2021 10:06 pm
Location: San Diego, CA, USA
x 19

Re: Vulkan error VK_ERROR_DEVICE_LOST

Post by jwwalker »

Looking deeper into the error in the 64 bit case, it seems to be complaining about the format parameter being passed in the lines

Code: Select all

vkGetPhysicalDeviceFormatProperties( mDevice->mPhysicalDevice,
                                     VulkanMappings::get( PFG_PVRTC_RGB2 ), &props );

in VulkanRenderSystem::createRenderSystemCapabilities. VulkanMappings::get( PFG_PVRTC_RGB2 ) returns VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG. The Vulkan documentation says that symbol is provided by the extension VK_IMG_format_pvrtc, which is deprecated.

jwwalker
Goblin
Posts: 268
Joined: Thu Aug 12, 2021 10:06 pm
Location: San Diego, CA, USA
x 19

Re: Vulkan error VK_ERROR_DEVICE_LOST

Post by jwwalker »

Continuing my saga in the 64 bit case, if I comment out the lines

Code: Select all

            vkGetPhysicalDeviceFormatProperties( mDevice->mPhysicalDevice,
                                                 VulkanMappings::get( PFG_PVRTC_RGB2 ), &props );
            if( props.optimalTilingFeatures & VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT )
                rsc->setCapability( RSC_TEXTURE_COMPRESSION_PVRTC );

from OgreVulkanRenderSystem.cpp, then things start up OK. But if I keep rendering for a while, eventually I get an error like this:

Code: Select all

Ogre: ERROR: [Validation] Code 0 : Validation Error: [ VUID-vkCmdEndDebugUtilsLabelEXT-commandBuffer-01912 ] Object 0: handle = 0x21317e660a0, type = VK_OBJECT_TYPE_COMMAND_BUFFER; | MessageID = 0x56146426 | vkCmdEndDebugUtilsLabelEXT() called without a corresponding vkCmdBeginDebugUtilsLabelEXT first The Vulkan spec states: There must be an outstanding vkCmdBeginDebugUtilsLabelEXT command prior to the vkCmdEndDebugUtilsLabelEXT on the queue that commandBuffer is submitted to (https://vulkan.lunarg.com/doc/view/1.3.250.0/windows/1.3-extensions/vkspec.html#VUID-vkCmdEndDebugUtilsLabelEXT-commandBuffer-01912)

I looked into it a bit, and found that there are paired calls to vkCmdBeginDebugUtilsLabelEXT and vkCmdEndDebugUtilsLabelEXT, but in the problematic case, different command buffer pointers were passed to those two calls.

User avatar
dark_sylinc
OGRE Team Member
OGRE Team Member
Posts: 5477
Joined: Sat Jul 21, 2007 4:55 pm
Location: Buenos Aires, Argentina
x 1359

Re: Vulkan error VK_ERROR_DEVICE_LOST

Post by dark_sylinc »

in VulkanRenderSystem::createRenderSystemCapabilities. VulkanMappings::get( PFG_PVRTC_RGB2 ) returns VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG. The Vulkan documentation says that symbol is provided by the extension VK_IMG_format_pvrtc, which is deprecated.

Whoa! I did not know this! Thanks! And my validation layers are older so they did not catch this!
Fixed it by removing PVRTC.

Enabling a Vulkan extension requires careful testing, and we can't support an extension we cannot test.

But if I keep rendering for a while, eventually I get an error like this:

Code: Select all

Ogre: ERROR: [Validation] Code 0 : Validation Error: [ VUID-vkCmdEndDebugUtilsLabelEXT-commandBuffer-01912 ] Object 0: handle = 0x21317e660a0, type = VK_OBJECT_TYPE_COMMAND_BUFFER; | MessageID = 0x56146426 | vkCmdEndDebugUtilsLabelEXT() called without a corresponding vkCmdBeginDebugUtilsLabelEXT first The Vulkan spec states: There must be an outstanding vkCmdBeginDebugUtilsLabelEXT command prior to the vkCmdEndDebugUtilsLabelEXT on the queue that commandBuffer is submitted to (https://vulkan.lunarg.com/doc/view/1.3.250.0/windows/1.3-extensions/vkspec.html#VUID-vkCmdEndDebugUtilsLabelEXT-commandBuffer-01912)

That looks like a false positive from the validation layers that was fixed just 2 weeks ago.

Funny though, Mesa drivers had the same problem and they would crash: they didn't like Begin() starting in one command buffer and End() being on the next command buffer.

OK now two more things:

1- For the sake of your sanity, consider rendering everything to a RenderTexture, treating that like a Window, and then use a render_quad to copy the final content to the window. This is of course slower and takes more bandwidth; but if you frequently need to download the contents of the window back to the CPU, this method will be far more consistent across APIs and OS. When you download from the Window, you encounter a lot problems.
For example on Linux even if we do everything perfectly, the downloaded window's content may be be glitchy because of how X11 works (the downloaded content has tearing! Even if the content displayed to the monitor is tearing-free!)

2- Vulkan drivers for 32-bit apps are not well tested (ISVs don't care, almost no one seem to care). Some functionality is even missing (i.e. certain extensions are not present). Given that ISVs don't care, we can't focus on 32 bit apps either.

jwwalker
Goblin
Posts: 268
Joined: Thu Aug 12, 2021 10:06 pm
Location: San Diego, CA, USA
x 19

Re: Vulkan error VK_ERROR_DEVICE_LOST

Post by jwwalker »

dark_sylinc wrote: Wed Jun 14, 2023 2:54 am

But if I keep rendering for a while, eventually I get an error like this:

Code: Select all

Ogre: ERROR: [Validation] Code 0 : Validation Error: [ VUID-vkCmdEndDebugUtilsLabelEXT-commandBuffer-01912 ] Object 0: handle = 0x21317e660a0, type = VK_OBJECT_TYPE_COMMAND_BUFFER; | MessageID = 0x56146426 | vkCmdEndDebugUtilsLabelEXT() called without a corresponding vkCmdBeginDebugUtilsLabelEXT first The Vulkan spec states: There must be an outstanding vkCmdBeginDebugUtilsLabelEXT command prior to the vkCmdEndDebugUtilsLabelEXT on the queue that commandBuffer is submitted to (https://vulkan.lunarg.com/doc/view/1.3.250.0/windows/1.3-extensions/vkspec.html#VUID-vkCmdEndDebugUtilsLabelEXT-commandBuffer-01912)

That looks like a false positive from the validation layers that was fixed just 2 weeks ago.

Funny though, Mesa drivers had the same problem and they would crash: they didn't like Begin() starting in one command buffer and End() being on the next command buffer.

OK now two more things:

1- For the sake of your sanity, consider rendering everything to a RenderTexture, treating that like a Window, and then use a render_quad to copy the final content to the window. This is of course slower and takes more bandwidth; but if you frequently need to download the contents of the window back to the CPU, this method will be far more consistent across APIs and OS. When you download from the Window, you encounter a lot problems.
For example on Linux even if we do everything perfectly, the downloaded window's content may be be glitchy because of how X11 works (the downloaded content has tearing! Even if the content displayed to the monitor is tearing-free!)

2- Vulkan drivers for 32-bit apps are not well tested (ISVs don't care, almost no one seem to care). Some functionality is even missing (i.e. certain extensions are not present). Given that ISVs don't care, we can't focus on 32 bit apps either.

To get a fix for the validation error, will I be waiting for a driver update, or a Vulkan SDK or runtime update?

Yes, I could live without Vulkan for 32 bits.

I occasionally but unpredictably need to copy the color or depth data to the CPU. I could just do an extra render at that point, but naturally I’d prefer not to. So I thought of the plan to copy the window content to textures on each render, and then I can download from the copy at my leisure. At least on Metal, that didn’t seem to have any impact on my frame rate.

I want to clarify one thing: when I copy the window content to a texture, does that count as a “download” in some sense? I figured it would just be copying from one chunk of GPU memory to another.

User avatar
dark_sylinc
OGRE Team Member
OGRE Team Member
Posts: 5477
Joined: Sat Jul 21, 2007 4:55 pm
Location: Buenos Aires, Argentina
x 1359

Re: Vulkan error VK_ERROR_DEVICE_LOST

Post by dark_sylinc »

jwwalker wrote: Wed Jun 14, 2023 6:02 am

To get a fix for the validation error, will I be waiting for a driver update, or a Vulkan SDK or runtime update?

It should be fixed by installing a newer Vulkan SDK (when it comes out, if it didn't already).

In the meantime if it bothers you, you can comment out the Begin/End() calls. They're used for debugging so that in RenderDoc commands are grouped by their Compositor passes (with user friendly names if you've set up the profiling_id in the compositor script)

At least on Metal, that didn’t seem to have any impact on my frame rate.

Yeah, on Desktop HW + iOS HW the impact should be negligible.

jwwalker wrote: Wed Jun 14, 2023 6:02 am

I want to clarify one thing: when I copy the window content to a texture, does that count as a “download” in some sense? I figured it would just be copying from one chunk of GPU memory to another.

Yes, using the Window for anything else other than issuing rendering commands is asking for extra trouble.
"Downloading" data actually requires copying the Texture (private VRAM) to another texture or buffer (that is visible to CPU) so yes: "copying" from the texture (even if it's private texture to private texture) causes problems.

jwwalker
Goblin
Posts: 268
Joined: Thu Aug 12, 2021 10:06 pm
Location: San Diego, CA, USA
x 19

Re: Vulkan error VK_ERROR_DEVICE_LOST

Post by jwwalker »

I'm still getting a validation error from Vulkan (64 bit on Windows) when trying to download color data from the window, in spite of using the newly implemented setWantsToDownload. I understand that you're advising me to consider a different approach, but as long as you took the trouble of implementing setWantsToDownload, it would be nice if it worked...

Code: Select all

Ogre: ERROR: [Validation] Code 0 : Validation Error: [ UNASSIGNED-CoreValidation-DrawState-InvalidImageLayout ] Object 0: handle = 0x2a6f3e57b00, type = VK_OBJECT_TYPE_COMMAND_BUFFER; | MessageID = 0x4dae5635 | vkQueueSubmit(): pSubmits[0].pCommandBuffers[0] command buffer VkCommandBuffer 0x2a6f3e57b00[] expects VkImage 0xfe9040000000f36[] (subresource: aspectMask 0x1 array layer 0, mip level 0) to be in layout VK_IMAGE_LAYOUT_PRESENT_SRC_KHR--instead, current layout is VK_IMAGE_LAYOUT_UNDEFINED.

Backtrace:

Code: Select all

RenderSystem_Vulkan_d.dll!Ogre::dbgFunc(unsigned int msgFlags, VkDebugReportObjectTypeEXT objType, unsigned __int64 srcObject, unsigned __int64 location, int msgCode, const char * pLayerPrefix, const char * pMsg, void * pUserData) Line 148	C++
VkLayer_khronos_validation.dll!debug_log_msg(const _debug_report_data * debug_data, unsigned int msg_flags, const LogObjectList & objects, const char * message, const char * text_vuid, const char *) Line 204	C++
VkLayer_khronos_validation.dll!LogMsg(const _debug_report_data * debug_data, unsigned int msg_flags, const LogObjectList & objects, std::basic_string_view<char,std::char_traits<char>> vuid_text, const char * format, char * argptr) Line 437	C++
VkLayer_khronos_validation.dll!ValidationObject::LogError(const LogObjectList & objlist, std::basic_string_view<char,std::char_traits<char>> vuid_text, const char * format, ...) Line 4076	C++
VkLayer_khronos_validation.dll!CoreChecks::ValidateCmdBufImageLayouts(const core_error::Location & loc, const CMD_BUFFER_STATE & cb_state, robin_hood::detail::Table<0,80,IMAGE_STATE const *,std::optional<GlobalImageLayoutRangeMap>,robin_hood::hash<IMAGE_STATE const *,void>,std::equal_to<IMAGE_STATE const *>> & overlayLayoutMap) Line 346	C++
VkLayer_khronos_validation.dll!CommandBufferSubmitState::Validate(const core_error::Location & loc, const CMD_BUFFER_STATE & cb_state, unsigned int perf_pass) Line 43	C++
VkLayer_khronos_validation.dll!CoreChecks::PreCallValidateQueueSubmit(VkQueue_T * queue, unsigned int submitCount, const VkSubmitInfo * pSubmits, VkFence_T * fence) Line 139	C++
VkLayer_khronos_validation.dll!vulkan_layer_chassis::QueueSubmit(VkQueue_T * queue, unsigned int submitCount, const VkSubmitInfo * pSubmits, VkFence_T * fence) Line 1161	C++
[External Code]	
RenderSystem_Vulkan_d.dll!Ogre::VulkanQueue::commitAndNextCommandBuffer(Ogre::SubmissionType::SubmissionType submissionType) Line 1240	C++
RenderSystem_Vulkan_d.dll!Ogre::VulkanAsyncTextureTicket::downloadFromGpu(Ogre::TextureGpu * textureSrc, unsigned char mipLevel, bool accurateTracking, Ogre::TextureBox * srcBox) Line 180	C++
OgreMain_d.dll!Ogre::AsyncTextureTicket::download(Ogre::TextureGpu * textureSrc, unsigned char mipLevel, bool accurateTracking, Ogre::TextureBox * srcBox, bool bImmediate) Line 157	C++
OgreMain_d.dll!Ogre::Image2::copyContentsToMemory(Ogre::TextureGpu * texture, Ogre::TextureBox srcBox, Ogre::TextureBox dstBox, Ogre::PixelFormatGpu dstFormat, bool automaticResolve) Line 445	C++
User avatar
dark_sylinc
OGRE Team Member
OGRE Team Member
Posts: 5477
Joined: Sat Jul 21, 2007 4:55 pm
Location: Buenos Aires, Argentina
x 1359

Re: Vulkan error VK_ERROR_DEVICE_LOST

Post by dark_sylinc »

This one is difficult for me because I cannot repro.

See that UnitTests.cpp performs a download and it works on my machine(tm).

However explaining the following, perhaps you can realize what is causing the bug to trigger:

A Vulkan window has the following "moments" or "states"

  • The swapchain is acquired. This happens in VulkanWindowSwapChainBased::acquireNextSwapchain. And mSwapchainStatus == SwapchainAcquired. At this state downloading from the texture is likely not handled correctly by OgreNext, and even if it were, you'd be downloading garbage (likely it will look alright because it will have contents from 1-3 frames ago but there's no guarantees).

  • mSwapchainStatus == SwapchainUsedInRendering. We're in the middle of rendering and downloading the contents is a really bad idea. I doubt this is your case here because right after the download, if rendering continues you will get the error that "rendering was interrupted" or some other crash.

  • mSwapchainStatus == SwapchainUsedInRendering, but rendering is already over (the render pass was closed). It should be safe to download now, but I don't know if OgreNext handles this correctly.

  • mSwapchainStatus == SwapchainPendingSwap. This means VulkanWindowSwapChainBased::swapBuffers (a public function of Window::swapBuffers) was called but VulkanWindowSwapChainBased::_swapBuffers was not (which happens in VulkanQueue::commitAndNextCommandBuffer).

Now when you trigger the download in-between these states may explain what OgreNext is not handling.

Another note about this:

The last compositor pass to render to the window (this means RenderPassDescriptor::mReadyWindowForPresent == true, which is set so in CompositorManager2::prepareRenderWindowsForPresent) is in charge of telling the window that after rendering it should go into VK_IMAGE_LAYOUT_PRESENT_SRC_KHR state.

The actual code that does this in VulkanRenderPassDescriptor::setupColourAttachment but it takes effect in VulkanRenderPassDescriptor::performStoreActions when vkCmdEndRenderPass is called.

You will also see the following in performStoreActions after the vkCmdEndRenderPass:

Code: Select all

texture->mCurrLayout = VK_IMAGE_LAYOUT_PRESENT_SRC_KHR;
texture->mNextLayout = VK_IMAGE_LAYOUT_PRESENT_SRC_KHR;

This is for OgreNext's tracking purposes. This is key for us for your download to go correctly.

Because the following should be happening:

  1. You rendered normally.

  2. The last RenderPassDesc. told Vulkan the window should go into VK_IMAGE_LAYOUT_PRESENT_SRC_KHR.

  3. You download the contents

  4. We temporarily transition the texture from VK_IMAGE_LAYOUT_PRESENT_SRC_KHR to VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL for copying

  5. Once the copy is done and the copy encoder is closed, we transition it back to VK_IMAGE_LAYOUT_PRESENT_SRC_KHR for presentation (i.e. _swapBuffers gets called)

So when you copy, VulkanQueue::insertRestoreBarrier gets called, where:

Code: Select all

imageMemBarrier.oldLayout = newTransferLayout; // Should be VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL
imageMemBarrier.newLayout = vkTexture->mNextLayout; // Should be VK_IMAGE_LAYOUT_PRESENT_SRC_KHR

Note to self: After writing this all down, it made me realize I think the following case may not be handled correctly:

  1. Render to Window

  2. Download contents

  3. Render to Window (again, in a 2nd pass, does actual presentation)

  4. Present

jwwalker
Goblin
Posts: 268
Joined: Thu Aug 12, 2021 10:06 pm
Location: San Diego, CA, USA
x 19

Re: Vulkan error VK_ERROR_DEVICE_LOST

Post by jwwalker »

I've switched to a different approach, in which my compositor renders to a locally-defined texture until the very end, at which time a quad pass copies from the local texture to the window. And now, if I need to take a snapshot, my passPreExecute listener method (running in that last quad pass) will access the local texture using CompositorNode::getDefinedTexture and then use Image2::convertFromTexture to download the image data. That works fine with Metal and Direct3D, but no luck with Vulkan. This time, during that last pass, a function named checkTextureLayout throws an ERR_INVALID_STATE exception with the message:

Code: Select all

Texture colorTx[Value 0x00000067] is not in ResourceLayout::Texture nor RenderTargetReadOnly. Did you forget to expose it to  compositor? Currently rendering to target: RenderWindow

(The local texture name in the compositor node is "colorTx".)

Backtrace:

Code: Select all

RenderSystem_Vulkan_d.dll!Ogre::ExceptionFactory::throwException(Ogre::Exception::ExceptionCodes code, int number, const std::string & desc, const std::string & src, const char * file, long line) Line 297	C++
RenderSystem_Vulkan_d.dll!Ogre::checkTextureLayout(const Ogre::TextureGpu * texture, Ogre::RenderPassDescriptor * currentRenderPassDescriptor) Line 1558	C++
RenderSystem_Vulkan_d.dll!Ogre::VulkanRenderSystem::_setTexture(unsigned __int64 unit, Ogre::TextureGpu * texPtr, bool bDepthReadOnly) Line 1579	C++
OgreMain_d.dll!Ogre::RenderSystem::_setTextureUnitSettings(unsigned __int64 texUnit, Ogre::TextureUnitState & tl) Line 369	C++
OgreMain_d.dll!Ogre::HlmsLowLevel::executeCommand(const Ogre::MovableObject * movableObject, Ogre::Renderable * renderable, bool casterPass) Line 336	C++
OgreMain_d.dll!Ogre::HlmsLowLevel::fillBuffersFor(const Ogre::HlmsCache * cache, const Ogre::QueuedRenderable & queuedRenderable, bool casterPass, unsigned int lastCacheHash, unsigned int lastTextureHash) Line 210	C++
OgreMain_d.dll!Ogre::RenderQueue::renderSingleObject(Ogre::Renderable * pRend, const Ogre::MovableObject * pMovableObject, Ogre::RenderSystem * rs, bool casterPass, bool dualParaboloid) Line 981	C++
OgreMain_d.dll!Ogre::SceneManager::_renderSingleObject(Ogre::Renderable * pRend, const Ogre::MovableObject * pMovableObject, bool casterPass, bool dualParaboloid) Line 4245	C++
OgreMain_d.dll!Ogre::CompositorPassQuad::execute(const Ogre::Camera * lodCamera) Line 317	C++
OgreMain_d.dll!Ogre::CompositorNode::_update(const Ogre::Camera * lodCamera, Ogre::SceneManager * sceneManager) Line 836	C++
OgreMain_d.dll!Ogre::CompositorWorkspace::_update(const bool bInsideAutoreleasePool) Line 841	C++
OgreMain_d.dll!Ogre::CompositorManager2::_updateImplementation() Line 791	C++
OgreMain_d.dll!Ogre::RenderSystem::updateCompositorManager(Ogre::CompositorManager2 * compositorManager) Line 1312	C++
OgreMain_d.dll!Ogre::CompositorManager2::_update() Line 713	C++
OgreMain_d.dll!Ogre::Root::_updateAllRenderTargets() Line 1571	C++
OgreMain_d.dll!Ogre::Root::renderOneFrame() Line 1102	C++

As an afterthought, I tried doing my snapshot in passEarlyPreExecute instead of passPreExecute. And now it seems to work!? :?