NVIDIA / Q2RTX

NVIDIA’s implementation of RTX ray-tracing in Quake II
Other
1.21k stars 180 forks source link

Native wayland small viewport & stretched graphics #375

Open FireBurn opened 4 months ago

FireBurn commented 4 months ago

When building with X11 disabled or running with SDL_VIDEODRIVER=wayland the viewport appears wrong and stretched

Taking a screenshot makes things look worse

Screenshot_20240205_100646

Running with Xwayland everything works fine

This is on Q2RTX from the latest git, the latest git mesa drivers on an AMD 6800M prime laptop on Plasma 6 also from git - other native wayland games display correctly


SDL_VIDEODRIVER=wayland ./q2rtx
------- FS_Init -------
Current search path:
/home/fireburn/.local/share/quake2rtx/baseq2
/home/fireburn/.local/share/quake2rtx/baseq2/q2rtx_media.pkz (4054 files)
/home/fireburn/.local/share/quake2rtx/baseq2/blue_noise.pkz (258 files)
/home/fireburn/.local/share/quake2rtx/baseq2/pak2.pak (2 files)
/home/fireburn/.local/share/quake2rtx/baseq2/pak1.pak (279 files)
/home/fireburn/.local/share/quake2rtx/baseq2/pak0.pak (3307 files)
/home/fireburn/Q2RTX/baseq2
3588 files in PAK files
4312 files in PKZ files
-----------------------
Logging console to logs/console.log
Execing default.cfg
Execing q2rtx.cfg
Execing q2config.cfg

Engine version: q2rtx 1.7.0-master-5e2c4668, built on Jan 30 2024

Using SDL video driver: wayland
Loaded 2388 materials from materials/baseq2.mat
----- init_vulkan -----
Available Vulkan layers: 
  VK_LAYER_VALVE_steam_overlay_64
  VK_LAYER_VALVE_steam_overlay_32
  VK_LAYER_VALVE_steam_fossilize_64
  VK_LAYER_VALVE_steam_fossilize_32
  VK_LAYER_FROG_gamescope_wsi_x86_64
  VK_LAYER_VKBASALT_post_processing
  VK_LAYER_MESA_device_select
  VK_LAYER_MESA_overlay
  VK_LAYER_KHRONOS_validation
Vulkan instance extensions required by SDL2: 
  VK_KHR_surface
  VK_KHR_wayland_surface
Supported Vulkan instance extensions: 
  VK_KHR_device_group_creation (requested)
  VK_KHR_display
  VK_KHR_external_fence_capabilities
  VK_KHR_external_memory_capabilities
  VK_KHR_external_semaphore_capabilities
  VK_KHR_get_display_properties2
  VK_KHR_get_physical_device_properties2
  VK_KHR_get_surface_capabilities2
  VK_KHR_surface (requested)
  VK_KHR_surface_protected_capabilities
  VK_KHR_wayland_surface (requested)
  VK_KHR_xcb_surface
  VK_KHR_xlib_surface
  VK_EXT_acquire_drm_display
  VK_EXT_acquire_xlib_display
  VK_EXT_debug_report (requested)
  VK_EXT_debug_utils (requested)
  VK_EXT_direct_mode_display
  VK_EXT_display_surface_counter
  VK_EXT_surface_maintenance1
  VK_EXT_swapchain_colorspace
  VK_KHR_portability_enumeration
  VK_LUNARG_direct_driver_loading
SLI: using device group 0 with 1 device(s).
Physical device 0: AMD Radeon Graphics (RADV RENOIR)
Supported Vulkan device extensions:
  VK_KHR_8bit_storage
  VK_KHR_16bit_storage
  VK_KHR_bind_memory2
  VK_KHR_buffer_device_address
  VK_KHR_calibrated_timestamps
  VK_KHR_copy_commands2
  VK_KHR_create_renderpass2
  VK_KHR_dedicated_allocation
  VK_KHR_deferred_host_operations
  VK_KHR_depth_stencil_resolve
  VK_KHR_descriptor_update_template
  VK_KHR_device_group
  VK_KHR_draw_indirect_count
  VK_KHR_driver_properties
  VK_KHR_dynamic_rendering
  VK_KHR_external_fence
  VK_KHR_external_fence_fd
  VK_KHR_external_memory
  VK_KHR_external_memory_fd
  VK_KHR_external_semaphore
  VK_KHR_external_semaphore_fd
  VK_KHR_format_feature_flags2
  VK_KHR_get_memory_requirements2
  VK_KHR_global_priority
  VK_KHR_image_format_list
  VK_KHR_imageless_framebuffer
  VK_KHR_incremental_present
  VK_KHR_index_type_uint8
  VK_KHR_line_rasterization
  VK_KHR_load_store_op_none
  VK_KHR_maintenance1
  VK_KHR_maintenance2
  VK_KHR_maintenance3
  VK_KHR_maintenance4
  VK_KHR_maintenance5
  VK_KHR_maintenance6
  VK_KHR_map_memory2
  VK_KHR_multiview
  VK_KHR_pipeline_executable_properties
  VK_KHR_pipeline_library
  VK_KHR_present_id
  VK_KHR_present_wait
  VK_KHR_push_descriptor
  VK_KHR_relaxed_block_layout
  VK_KHR_sampler_mirror_clamp_to_edge
  VK_KHR_sampler_ycbcr_conversion
  VK_KHR_separate_depth_stencil_layouts
  VK_KHR_shader_atomic_int64
  VK_KHR_shader_clock
  VK_KHR_shader_draw_parameters
  VK_KHR_shader_expect_assume
  VK_KHR_shader_float16_int8
  VK_KHR_shader_float_controls
  VK_KHR_shader_integer_dot_product
  VK_KHR_shader_non_semantic_info
  VK_KHR_shader_subgroup_extended_types
  VK_KHR_shader_subgroup_rotate
  VK_KHR_shader_subgroup_uniform_control_flow
  VK_KHR_shader_terminate_invocation
  VK_KHR_spirv_1_4
  VK_KHR_storage_buffer_storage_class
  VK_KHR_swapchain
  VK_KHR_swapchain_mutable_format
  VK_KHR_synchronization2
  VK_KHR_timeline_semaphore
  VK_KHR_uniform_buffer_standard_layout
  VK_KHR_variable_pointers
  VK_KHR_vertex_attribute_divisor
  VK_KHR_vulkan_memory_model
  VK_KHR_workgroup_memory_explicit_layout
  VK_KHR_zero_initialize_workgroup_memory
  VK_EXT_4444_formats
  VK_EXT_attachment_feedback_loop_dynamic_state
  VK_EXT_attachment_feedback_loop_layout
  VK_EXT_buffer_device_address
  VK_EXT_calibrated_timestamps
  VK_EXT_color_write_enable
  VK_EXT_conditional_rendering
  VK_EXT_conservative_rasterization
  VK_EXT_custom_border_color
  VK_EXT_depth_bias_control
  VK_EXT_depth_clamp_zero_one
  VK_EXT_depth_clip_control
  VK_EXT_depth_clip_enable
  VK_EXT_depth_range_unrestricted
  VK_EXT_descriptor_buffer
  VK_EXT_descriptor_indexing
  VK_EXT_device_fault
  VK_EXT_discard_rectangles
  VK_EXT_display_control
  VK_EXT_dynamic_rendering_unused_attachments
  VK_EXT_extended_dynamic_state
  VK_EXT_extended_dynamic_state2
  VK_EXT_extended_dynamic_state3
  VK_EXT_external_memory_acquire_unmodified
  VK_EXT_external_memory_dma_buf
  VK_EXT_external_memory_host
  VK_EXT_fragment_shader_interlock
  VK_EXT_global_priority
  VK_EXT_global_priority_query
  VK_EXT_graphics_pipeline_library
  VK_EXT_host_query_reset
  VK_EXT_image_2d_view_of_3d
  VK_EXT_image_compression_control
  VK_EXT_image_drm_format_modifier
  VK_EXT_image_robustness
  VK_EXT_image_view_min_lod
  VK_EXT_index_type_uint8
  VK_EXT_inline_uniform_block
  VK_EXT_line_rasterization
  VK_EXT_load_store_op_none
  VK_EXT_memory_budget
  VK_EXT_memory_priority
  VK_EXT_multi_draw
  VK_EXT_mutable_descriptor_type
  VK_EXT_non_seamless_cube_map
  VK_EXT_pci_bus_info
  VK_EXT_physical_device_drm
  VK_EXT_pipeline_creation_cache_control
  VK_EXT_pipeline_creation_feedback
  VK_EXT_pipeline_robustness
  VK_EXT_primitive_topology_list_restart
  VK_EXT_primitives_generated_query
  VK_EXT_private_data
  VK_EXT_provoking_vertex
  VK_EXT_queue_family_foreign
  VK_EXT_robustness2
  VK_EXT_sample_locations
  VK_EXT_sampler_filter_minmax
  VK_EXT_scalar_block_layout
  VK_EXT_separate_stencil_usage
  VK_EXT_shader_atomic_float
  VK_EXT_shader_atomic_float2
  VK_EXT_shader_demote_to_helper_invocation
  VK_EXT_shader_image_atomic_int64
  VK_EXT_shader_module_identifier
  VK_EXT_shader_stencil_export
  VK_EXT_shader_subgroup_ballot
  VK_EXT_shader_subgroup_vote
  VK_EXT_shader_viewport_index_layer
  VK_EXT_subgroup_size_control
  VK_EXT_swapchain_maintenance1
  VK_EXT_texel_buffer_alignment
  VK_EXT_tooling_info
  VK_EXT_transform_feedback
  VK_EXT_vertex_attribute_divisor
  VK_EXT_vertex_input_dynamic_state
  VK_EXT_ycbcr_image_arrays
  VK_AMD_buffer_marker
  VK_AMD_device_coherent_memory
  VK_AMD_draw_indirect_count
  VK_AMD_gcn_shader
  VK_AMD_gpu_shader_half_float
  VK_AMD_gpu_shader_int16
  VK_AMD_memory_overallocation_behavior
  VK_AMD_mixed_attachment_samples
  VK_AMD_shader_ballot
  VK_AMD_shader_core_properties
  VK_AMD_shader_core_properties2
  VK_AMD_shader_early_and_late_fragment_tests
  VK_AMD_shader_explicit_vertex_parameter
  VK_AMD_shader_fragment_mask
  VK_AMD_shader_image_load_store_lod
  VK_AMD_shader_trinary_minmax
  VK_AMD_texture_gather_bias_lod
  VK_GOOGLE_decorate_string
  VK_GOOGLE_hlsl_functionality1
  VK_GOOGLE_user_type
  VK_INTEL_shader_integer_functions2
  VK_NV_compute_shader_derivatives
  VK_VALVE_mutable_descriptor_type
Physical device 1: AMD Radeon RX 6800M (RADV NAVI22)
Supported Vulkan device extensions:
  VK_KHR_8bit_storage
  VK_KHR_16bit_storage
  VK_KHR_acceleration_structure
  VK_KHR_bind_memory2
  VK_KHR_buffer_device_address
  VK_KHR_calibrated_timestamps
  VK_KHR_copy_commands2
  VK_KHR_create_renderpass2
  VK_KHR_dedicated_allocation
  VK_KHR_deferred_host_operations
  VK_KHR_depth_stencil_resolve
  VK_KHR_descriptor_update_template
  VK_KHR_device_group
  VK_KHR_draw_indirect_count
  VK_KHR_driver_properties
  VK_KHR_dynamic_rendering
  VK_KHR_external_fence
  VK_KHR_external_fence_fd
  VK_KHR_external_memory
  VK_KHR_external_memory_fd
  VK_KHR_external_semaphore
  VK_KHR_external_semaphore_fd
  VK_KHR_format_feature_flags2
  VK_KHR_fragment_shader_barycentric
  VK_KHR_fragment_shading_rate
  VK_KHR_get_memory_requirements2
  VK_KHR_global_priority
  VK_KHR_image_format_list
  VK_KHR_imageless_framebuffer
  VK_KHR_incremental_present
  VK_KHR_index_type_uint8
  VK_KHR_line_rasterization
  VK_KHR_load_store_op_none
  VK_KHR_maintenance1
  VK_KHR_maintenance2
  VK_KHR_maintenance3
  VK_KHR_maintenance4
  VK_KHR_maintenance5
  VK_KHR_maintenance6
  VK_KHR_map_memory2
  VK_KHR_multiview
  VK_KHR_performance_query
  VK_KHR_pipeline_executable_properties
  VK_KHR_pipeline_library
  VK_KHR_present_id
  VK_KHR_present_wait
  VK_KHR_push_descriptor
  VK_KHR_ray_query
  VK_KHR_ray_tracing_maintenance1
  VK_KHR_ray_tracing_pipeline
  VK_KHR_ray_tracing_position_fetch
  VK_KHR_relaxed_block_layout
  VK_KHR_sampler_mirror_clamp_to_edge
  VK_KHR_sampler_ycbcr_conversion
  VK_KHR_separate_depth_stencil_layouts
  VK_KHR_shader_atomic_int64
  VK_KHR_shader_clock
  VK_KHR_shader_draw_parameters
  VK_KHR_shader_expect_assume
  VK_KHR_shader_float16_int8
  VK_KHR_shader_float_controls
  VK_KHR_shader_integer_dot_product
  VK_KHR_shader_non_semantic_info
  VK_KHR_shader_subgroup_extended_types
  VK_KHR_shader_subgroup_rotate
  VK_KHR_shader_subgroup_uniform_control_flow
  VK_KHR_shader_terminate_invocation
  VK_KHR_spirv_1_4
  VK_KHR_storage_buffer_storage_class
  VK_KHR_swapchain
  VK_KHR_swapchain_mutable_format
  VK_KHR_synchronization2
  VK_KHR_timeline_semaphore
  VK_KHR_uniform_buffer_standard_layout
  VK_KHR_variable_pointers
  VK_KHR_vertex_attribute_divisor
  VK_KHR_vulkan_memory_model
  VK_KHR_workgroup_memory_explicit_layout
  VK_KHR_zero_initialize_workgroup_memory
  VK_EXT_4444_formats
  VK_EXT_attachment_feedback_loop_dynamic_state
  VK_EXT_attachment_feedback_loop_layout
  VK_EXT_border_color_swizzle
  VK_EXT_buffer_device_address
  VK_EXT_calibrated_timestamps
  VK_EXT_color_write_enable
  VK_EXT_conditional_rendering
  VK_EXT_conservative_rasterization
  VK_EXT_custom_border_color
  VK_EXT_depth_bias_control
  VK_EXT_depth_clamp_zero_one
  VK_EXT_depth_clip_control
  VK_EXT_depth_clip_enable
  VK_EXT_depth_range_unrestricted
  VK_EXT_descriptor_buffer
  VK_EXT_descriptor_indexing
  VK_EXT_device_fault
  VK_EXT_discard_rectangles
  VK_EXT_display_control
  VK_EXT_dynamic_rendering_unused_attachments
  VK_EXT_extended_dynamic_state
  VK_EXT_extended_dynamic_state2
  VK_EXT_extended_dynamic_state3
  VK_EXT_external_memory_acquire_unmodified
  VK_EXT_external_memory_dma_buf
  VK_EXT_external_memory_host
  VK_EXT_fragment_shader_interlock
  VK_EXT_global_priority
  VK_EXT_global_priority_query
  VK_EXT_graphics_pipeline_library
  VK_EXT_host_query_reset
  VK_EXT_image_2d_view_of_3d
  VK_EXT_image_compression_control
  VK_EXT_image_drm_format_modifier
  VK_EXT_image_robustness
  VK_EXT_image_sliced_view_of_3d
  VK_EXT_image_view_min_lod
  VK_EXT_index_type_uint8
  VK_EXT_inline_uniform_block
  VK_EXT_line_rasterization
  VK_EXT_load_store_op_none
  VK_EXT_memory_budget
  VK_EXT_memory_priority
  VK_EXT_mesh_shader
  VK_EXT_multi_draw
  VK_EXT_mutable_descriptor_type
  VK_EXT_non_seamless_cube_map
  VK_EXT_pci_bus_info
  VK_EXT_physical_device_drm
  VK_EXT_pipeline_creation_cache_control
  VK_EXT_pipeline_creation_feedback
  VK_EXT_pipeline_library_group_handles
  VK_EXT_pipeline_robustness
  VK_EXT_post_depth_coverage
  VK_EXT_primitive_topology_list_restart
  VK_EXT_primitives_generated_query
  VK_EXT_private_data
  VK_EXT_provoking_vertex
  VK_EXT_queue_family_foreign
  VK_EXT_robustness2
  VK_EXT_sampler_filter_minmax
  VK_EXT_scalar_block_layout
  VK_EXT_separate_stencil_usage
  VK_EXT_shader_atomic_float
  VK_EXT_shader_atomic_float2
  VK_EXT_shader_demote_to_helper_invocation
  VK_EXT_shader_image_atomic_int64
  VK_EXT_shader_module_identifier
  VK_EXT_shader_stencil_export
  VK_EXT_shader_subgroup_ballot
  VK_EXT_shader_subgroup_vote
  VK_EXT_shader_viewport_index_layer
  VK_EXT_subgroup_size_control
  VK_EXT_swapchain_maintenance1
  VK_EXT_texel_buffer_alignment
  VK_EXT_tooling_info
  VK_EXT_transform_feedback
  VK_EXT_vertex_attribute_divisor
  VK_EXT_vertex_input_dynamic_state
  VK_EXT_ycbcr_image_arrays
  VK_AMD_buffer_marker
  VK_AMD_device_coherent_memory
  VK_AMD_draw_indirect_count
  VK_AMD_gcn_shader
  VK_AMD_gpu_shader_half_float
  VK_AMD_gpu_shader_int16
  VK_AMD_memory_overallocation_behavior
  VK_AMD_mixed_attachment_samples
  VK_AMD_shader_ballot
  VK_AMD_shader_core_properties
  VK_AMD_shader_core_properties2
  VK_AMD_shader_early_and_late_fragment_tests
  VK_AMD_shader_explicit_vertex_parameter
  VK_AMD_shader_fragment_mask
  VK_AMD_shader_image_load_store_lod
  VK_AMD_shader_trinary_minmax
  VK_AMD_texture_gather_bias_lod
  VK_GOOGLE_decorate_string
  VK_GOOGLE_hlsl_functionality1
  VK_GOOGLE_user_type
  VK_INTEL_shader_integer_functions2
  VK_NV_compute_shader_derivatives
  VK_VALVE_mutable_descriptor_type
Picked physical device 1: AMD Radeon RX 6800M (RADV NAVI22)
Using VK_KHR_ray_query
FP16 support: yes
-----------------------
------- S_Init -------
OpenAL initialized.
----------------------
SDL mouse initialized.
====== Quake II RTX initialized ======

No server running.
Can't access /home/fireburn/.local/share/quake2rtx/baseq2/gamex86_64.so: No such file or directory
Loaded game library from /home/fireburn/Q2RTX/baseq2/gamex86_64.so
==== InitGame ====
Game supports Q2PRO enhanced savegames.
------- Server Initialization -------
SpawnServer: ntro.cin
0 entities inhibited
0 teams with 0 entities
-------------------------------------
Requesting connection... 1
Connected to loopback (protocol 36).
Can't "invuse", not connected
------- Server Initialization -------
SpawnServer: base1
28 entities inhibited
1 teams with 2 entities
-------------------------------------
Changing map...
Reconnecting...
Outer Base
loading base1
Execing maps/default.cfg
][ALSOFT] (WW) Error generated on context 0x55ccd239f5f0, code 0xa004, "Queueing buffer with mismatched format"
==== ShutdownGame ====
Shutting down Open
```AL.
Closing console log.
FireBurn commented 2 months ago

I retested this after building against the system libsdl2 and things still look wrong - different though

Screenshot_20240428_102426 Screenshot_20240428_102443 Screenshot_20240428_102454

This was using the desktop resolution 2560x1440, the menus look very wrong, the second screenshot is the start of the first level, and the third is looking towards the window without moving from the start point