Cpp-Gamescope: SteamOS session compositing window manager

gamescope: the micro-compositor formerly known as steamcompmgr

In an embedded session usecase, gamescope does the same thing as steamcompmgr, but with less extra copies and latency:

  • It's getting game frames through Wayland by way of Xwayland, so there's no copy within X itself before it gets the frame.
  • It can use DRM/KMS to directly flip game frames to the screen, even when stretching or when notifications are up, removing another copy.
  • When it does need to composite with the GPU, it does so with async Vulkan compute, meaning you get to see your frame quick even if the game already has the GPU busy with the next frame.

It also runs on top of a regular desktop, the 'nested' usecase steamcompmgr didn't support.

  • Because the game is running in its own personal Xwayland sandbox desktop, it can't interfere with your desktop and your desktop can't interfere with it.
  • You can spoof a virtual screen with a desired resolution and refresh rate as the only thing the game sees, and control/resize the output as needed. This can be useful in exotic display configurations like ultrawide or multi-monitor setups that involve rotation.

It runs on Mesa + AMD or Intel, and could be made to run on other Mesa/DRM drivers with minimal work. AMD requires Mesa 20.3+, Intel requires Mesa 21.2+. Can support NVIDIA if/when they support atomic KMS + accelerated Xwayland + Vulkan DMA-BUF extensions.

If running RadeonSI clients with older cards (GFX8 and below), currently have to set R600_DEBUG=nodcc, or corruption will be observed until the stack picks up DRM modifiers support.

Building

git submodule update --init
meson build/
ninja -C build/
build/gamescope -- <game>

Install with:

meson install -C build/ --skip-subprojects

Keyboard shortcuts

  • Super + F : Toggle fullscreen
  • Super + N : Toggle integer scaling
  • Super + S : Take screenshot (currently goes to /tmp/gamescope_$DATE.png)

Examples

On any X11 or Wayland desktop, you can set the Steam launch arguments of your game as follows:

# Upscale a 720p game to 1440p with integer scaling
gamescope -h 720 -H 1440 -n -- %command%

# Limit a vsynced game to 30 FPS
gamescope -r 30 -- %command%

# Run the game at 1080p, but scale output to a fullscreen 3440×1440 pillarboxed ultrawide window
gamescope -w 1920 -h 1080 -W 3440 -H 1440 -b -- %command%

Options

See gamescope --help for a full list of options.

  • -W, -H: set the resolution used by gamescope. Resizing the gamescope window will update these settings. Ignored in embedded mode. If -H is specified but -W isn't, a 16:9 aspect ratio is assumed. Defaults to 1280×720.
  • -w, -h: set the resolution used by the game. If -h is specified but -w isn't, a 16:9 aspect ratio is assumed. Defaults to the values specified in -W and -H.
  • -r: set a frame-rate limit for the game. Specified in frames per second. Defaults to unlimited.
  • -o: set a frame-rate limit for the game when unfocused. Specified in frames per second. Defaults to unlimited.
  • -n: use integer scaling.
  • -b: create a border-less window.
  • -f: create a full-screen window.

Comments

  • vulkan_make_output failed on Intel UHD Graphics 620
    vulkan_make_output failed on Intel UHD Graphics 620

    Dec 30, 2021

    I'm trying to try out gamescope -- vkcube, but I'm getting the following erroneous output:

    No CAP_SYS_NICE, falling back to regular-priority compute and threads.
    Performance will be affected.
    vulkan: selecting physical device 'Intel(R) UHD Graphics 620 (KBL GT2)'
    vulkan: physical device supports DRM format modifiers
    MESA-INTEL: warning: ../src/intel/vulkan/anv_formats.c:756: FINISHME: support multi-planar formats with DRM format modifiers
    vulkan: vkGetPhysicalDeviceFormatProperties2 returned zero modifiers for DRM format 0x3231564E (VkResult: 0)
    vulkan: supported DRM formats for sampling usage:
    vulkan:   0x34325258
    vulkan:   0x34325241
    vulkan: vulkan_make_output failed
    Failed to initialize Vulkan
    exit status 1
    

    gamescope waits for about 1 second before the vulkan_make_output failed line gets printed, if that means anything.

    vkcube runs fine outside of gamescope.

    vulkaninfo output
    ==========
    VULKANINFO
    ==========
    
    Vulkan Instance Version: 1.2.182
    
    
    Instance Extensions: count = 18
    ===============================
    	VK_EXT_acquire_xlib_display            : extension revision 1
    	VK_EXT_debug_report                    : extension revision 9
    	VK_EXT_debug_utils                     : extension revision 2
    	VK_EXT_direct_mode_display             : extension revision 1
    	VK_EXT_display_surface_counter         : extension revision 1
    	VK_KHR_device_group_creation           : extension revision 1
    	VK_KHR_display                         : extension revision 23
    	VK_KHR_external_fence_capabilities     : extension revision 1
    	VK_KHR_external_memory_capabilities    : extension revision 1
    	VK_KHR_external_semaphore_capabilities : extension revision 1
    	VK_KHR_get_display_properties2         : extension revision 1
    	VK_KHR_get_physical_device_properties2 : extension revision 2
    	VK_KHR_get_surface_capabilities2       : extension revision 1
    	VK_KHR_surface                         : extension revision 25
    	VK_KHR_surface_protected_capabilities  : extension revision 1
    	VK_KHR_wayland_surface                 : extension revision 6
    	VK_KHR_xcb_surface                     : extension revision 6
    	VK_KHR_xlib_surface                    : extension revision 6
    
    Layers: count = 4
    =================
    VK_LAYER_VALVE_steam_fossilize_32 (Steam Pipeline Caching Layer) Vulkan version 1.2.136, layer version 1:
    	Layer Extensions: count = 0
    	Devices: count = 2
    		GPU id = 0 (Intel(R) UHD Graphics 620 (KBL GT2))
    		Layer-Device Extensions: count = 0
    
    		GPU id = 1 (llvmpipe (LLVM 12.0.1, 256 bits))
    		Layer-Device Extensions: count = 0
    
    VK_LAYER_VALVE_steam_fossilize_64 (Steam Pipeline Caching Layer) Vulkan version 1.2.136, layer version 1:
    	Layer Extensions: count = 0
    	Devices: count = 2
    		GPU id = 0 (Intel(R) UHD Graphics 620 (KBL GT2))
    		Layer-Device Extensions: count = 0
    
    		GPU id = 1 (llvmpipe (LLVM 12.0.1, 256 bits))
    		Layer-Device Extensions: count = 0
    
    VK_LAYER_VALVE_steam_overlay_32 (Steam Overlay Layer) Vulkan version 1.2.136, layer version 1:
    	Layer Extensions: count = 0
    	Devices: count = 2
    		GPU id = 0 (Intel(R) UHD Graphics 620 (KBL GT2))
    		Layer-Device Extensions: count = 0
    
    		GPU id = 1 (llvmpipe (LLVM 12.0.1, 256 bits))
    		Layer-Device Extensions: count = 0
    
    VK_LAYER_VALVE_steam_overlay_64 (Steam Overlay Layer) Vulkan version 1.2.136, layer version 1:
    	Layer Extensions: count = 0
    	Devices: count = 2
    		GPU id = 0 (Intel(R) UHD Graphics 620 (KBL GT2))
    		Layer-Device Extensions: count = 0
    
    		GPU id = 1 (llvmpipe (LLVM 12.0.1, 256 bits))
    		Layer-Device Extensions: count = 0
    
    Presentable Surfaces:
    =====================
    GPU id : 0 (Intel(R) UHD Graphics 620 (KBL GT2)):
    	Surface types: count = 2
    		VK_KHR_xcb_surface
    		VK_KHR_xlib_surface
    	Formats: count = 2
    		SurfaceFormat[0]:
    			format = FORMAT_B8G8R8A8_SRGB
    			colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
    		SurfaceFormat[1]:
    			format = FORMAT_B8G8R8A8_UNORM
    			colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
    	Present Modes: count = 4
    		PRESENT_MODE_IMMEDIATE_KHR
    		PRESENT_MODE_MAILBOX_KHR
    		PRESENT_MODE_FIFO_KHR
    		PRESENT_MODE_FIFO_RELAXED_KHR
    	VkSurfaceCapabilitiesKHR:
    	-------------------------
    		minImageCount = 3
    		maxImageCount = 0
    		currentExtent:
    			width = 256
    			height = 256
    		minImageExtent:
    			width = 256
    			height = 256
    		maxImageExtent:
    			width = 256
    			height = 256
    		maxImageArrayLayers = 1
    		supportedTransforms: count = 1
    			SURFACE_TRANSFORM_IDENTITY_BIT_KHR
    		currentTransform = SURFACE_TRANSFORM_IDENTITY_BIT_KHR
    		supportedCompositeAlpha: count = 2
    			COMPOSITE_ALPHA_OPAQUE_BIT_KHR
    			COMPOSITE_ALPHA_INHERIT_BIT_KHR
    		supportedUsageFlags: count = 5
    			IMAGE_USAGE_TRANSFER_SRC_BIT
    			IMAGE_USAGE_TRANSFER_DST_BIT
    			IMAGE_USAGE_SAMPLED_BIT
    			IMAGE_USAGE_STORAGE_BIT
    			IMAGE_USAGE_COLOR_ATTACHMENT_BIT
    	VkSurfaceCapabilities2EXT:
    	--------------------------
    		supportedSurfaceCounters:
    			None
    	VkSurfaceProtectedCapabilitiesKHR:
    	----------------------------------
    		supportsProtected = false
    
    
    GPU id : 1 (llvmpipe (LLVM 12.0.1, 256 bits)):
    	Surface types: count = 2
    		VK_KHR_xcb_surface
    		VK_KHR_xlib_surface
    	Formats: count = 2
    		SurfaceFormat[0]:
    			format = FORMAT_B8G8R8A8_SRGB
    			colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
    		SurfaceFormat[1]:
    			format = FORMAT_B8G8R8A8_UNORM
    			colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
    	Present Modes: count = 4
    		PRESENT_MODE_IMMEDIATE_KHR
    		PRESENT_MODE_MAILBOX_KHR
    		PRESENT_MODE_FIFO_KHR
    		PRESENT_MODE_FIFO_RELAXED_KHR
    	VkSurfaceCapabilitiesKHR:
    	-------------------------
    		minImageCount = 3
    		maxImageCount = 0
    		currentExtent:
    			width = 256
    			height = 256
    		minImageExtent:
    			width = 256
    			height = 256
    		maxImageExtent:
    			width = 256
    			height = 256
    		maxImageArrayLayers = 1
    		supportedTransforms: count = 1
    			SURFACE_TRANSFORM_IDENTITY_BIT_KHR
    		currentTransform = SURFACE_TRANSFORM_IDENTITY_BIT_KHR
    		supportedCompositeAlpha: count = 2
    			COMPOSITE_ALPHA_OPAQUE_BIT_KHR
    			COMPOSITE_ALPHA_INHERIT_BIT_KHR
    		supportedUsageFlags: count = 5
    			IMAGE_USAGE_TRANSFER_SRC_BIT
    			IMAGE_USAGE_TRANSFER_DST_BIT
    			IMAGE_USAGE_SAMPLED_BIT
    			IMAGE_USAGE_STORAGE_BIT
    			IMAGE_USAGE_COLOR_ATTACHMENT_BIT
    	VkSurfaceCapabilities2EXT:
    	--------------------------
    		supportedSurfaceCounters:
    			None
    	VkSurfaceProtectedCapabilitiesKHR:
    	----------------------------------
    		supportsProtected = false
    
    
    GPU id : 0 (Intel(R) UHD Graphics 620 (KBL GT2)):
    	Surface type = VK_KHR_wayland_surface
    	Formats: count = 2
    		SurfaceFormat[0]:
    			format = FORMAT_B8G8R8A8_SRGB
    			colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
    		SurfaceFormat[1]:
    			format = FORMAT_B8G8R8A8_UNORM
    			colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
    	Present Modes: count = 2
    		PRESENT_MODE_MAILBOX_KHR
    		PRESENT_MODE_FIFO_KHR
    	VkSurfaceCapabilitiesKHR:
    	-------------------------
    		minImageCount = 4
    		maxImageCount = 0
    		currentExtent:
    			width = 4294967295
    			height = 4294967295
    		minImageExtent:
    			width = 1
    			height = 1
    		maxImageExtent:
    			width = 16384
    			height = 16384
    		maxImageArrayLayers = 1
    		supportedTransforms: count = 1
    			SURFACE_TRANSFORM_IDENTITY_BIT_KHR
    		currentTransform = SURFACE_TRANSFORM_IDENTITY_BIT_KHR
    		supportedCompositeAlpha: count = 2
    			COMPOSITE_ALPHA_OPAQUE_BIT_KHR
    			COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR
    		supportedUsageFlags: count = 5
    			IMAGE_USAGE_TRANSFER_SRC_BIT
    			IMAGE_USAGE_TRANSFER_DST_BIT
    			IMAGE_USAGE_SAMPLED_BIT
    			IMAGE_USAGE_STORAGE_BIT
    			IMAGE_USAGE_COLOR_ATTACHMENT_BIT
    	VkSurfaceCapabilities2EXT:
    	--------------------------
    		supportedSurfaceCounters:
    			None
    	VkSurfaceProtectedCapabilitiesKHR:
    	----------------------------------
    		supportsProtected = false
    
    
    GPU id : 1 (llvmpipe (LLVM 12.0.1, 256 bits)):
    	Surface type = VK_KHR_wayland_surface
    	Formats: count = 2
    		SurfaceFormat[0]:
    			format = FORMAT_B8G8R8A8_SRGB
    			colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
    		SurfaceFormat[1]:
    			format = FORMAT_B8G8R8A8_UNORM
    			colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
    	Present Modes: count = 2
    		PRESENT_MODE_MAILBOX_KHR
    		PRESENT_MODE_FIFO_KHR
    	VkSurfaceCapabilitiesKHR:
    	-------------------------
    		minImageCount = 4
    		maxImageCount = 0
    		currentExtent:
    			width = 4294967295
    			height = 4294967295
    		minImageExtent:
    			width = 1
    			height = 1
    		maxImageExtent:
    			width = 16384
    			height = 16384
    		maxImageArrayLayers = 1
    		supportedTransforms: count = 1
    			SURFACE_TRANSFORM_IDENTITY_BIT_KHR
    		currentTransform = SURFACE_TRANSFORM_IDENTITY_BIT_KHR
    		supportedCompositeAlpha: count = 2
    			COMPOSITE_ALPHA_OPAQUE_BIT_KHR
    			COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR
    		supportedUsageFlags: count = 5
    			IMAGE_USAGE_TRANSFER_SRC_BIT
    			IMAGE_USAGE_TRANSFER_DST_BIT
    			IMAGE_USAGE_SAMPLED_BIT
    			IMAGE_USAGE_STORAGE_BIT
    			IMAGE_USAGE_COLOR_ATTACHMENT_BIT
    	VkSurfaceCapabilities2EXT:
    	--------------------------
    		supportedSurfaceCounters:
    			None
    	VkSurfaceProtectedCapabilitiesKHR:
    	----------------------------------
    		supportsProtected = false
    
    
    
    Device Groups:
    ==============
    Group 0:
    	Properties:
    		physicalDevices: count = 1
    			Intel(R) UHD Graphics 620 (KBL GT2) (ID: 0)
    		subsetAllocation = 0
    
    	Present Capabilities:
    		Intel(R) UHD Graphics 620 (KBL GT2) (ID: 0):
    			Can present images from the following devices: count = 1
    				Intel(R) UHD Graphics 620 (KBL GT2) (ID: 0)
    		Present modes: count = 1
    			DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR
    
    Group 1:
    	Properties:
    		physicalDevices: count = 1
    			llvmpipe (LLVM 12.0.1, 256 bits) (ID: 0)
    		subsetAllocation = 0
    
    	Present Capabilities:
    		llvmpipe (LLVM 12.0.1, 256 bits) (ID: 0):
    			Can present images from the following devices: count = 1
    				llvmpipe (LLVM 12.0.1, 256 bits) (ID: 0)
    		Present modes: count = 1
    			DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR
    
    
    Device Properties and Extensions:
    =================================
    GPU0:
    VkPhysicalDeviceProperties:
    ---------------------------
    	apiVersion        = 4202664 (1.2.168)
    	driverVersion     = 88084487 (0x5401007)
    	vendorID          = 0x8086
    	deviceID          = 0x5917
    	deviceType        = PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU
    	deviceName        = Intel(R) UHD Graphics 620 (KBL GT2)
    	pipelineCacheUUID = 8f0dd845-e049-40e5-1683-a8f9cd44da40
    
    VkPhysicalDeviceLimits:
    -----------------------
    	maxImageDimension1D                             = 16384
    	maxImageDimension2D                             = 16384
    	maxImageDimension3D                             = 2048
    	maxImageDimensionCube                           = 16384
    	maxImageArrayLayers                             = 2048
    	maxTexelBufferElements                          = 134217728
    	maxUniformBufferRange                           = 134217728
    	maxStorageBufferRange                           = 1073741824
    	maxPushConstantsSize                            = 128
    	maxMemoryAllocationCount                        = 4294967295
    	maxSamplerAllocationCount                       = 65536
    	bufferImageGranularity                          = 0x00000040
    	sparseAddressSpaceSize                          = 0x00000000
    	maxBoundDescriptorSets                          = 8
    	maxPerStageDescriptorSamplers                   = 65535
    	maxPerStageDescriptorUniformBuffers             = 64
    	maxPerStageDescriptorStorageBuffers             = 65535
    	maxPerStageDescriptorSampledImages              = 65535
    	maxPerStageDescriptorStorageImages              = 65535
    	maxPerStageDescriptorInputAttachments           = 64
    	maxPerStageResources                            = 4294967295
    	maxDescriptorSetSamplers                        = 393210
    	maxDescriptorSetUniformBuffers                  = 384
    	maxDescriptorSetUniformBuffersDynamic           = 8
    	maxDescriptorSetStorageBuffers                  = 393210
    	maxDescriptorSetStorageBuffersDynamic           = 8
    	maxDescriptorSetSampledImages                   = 393210
    	maxDescriptorSetStorageImages                   = 393210
    	maxDescriptorSetInputAttachments                = 256
    	maxVertexInputAttributes                        = 28
    	maxVertexInputBindings                          = 28
    	maxVertexInputAttributeOffset                   = 2047
    	maxVertexInputBindingStride                     = 2048
    	maxVertexOutputComponents                       = 128
    	maxTessellationGenerationLevel                  = 64
    	maxTessellationPatchSize                        = 32
    	maxTessellationControlPerVertexInputComponents  = 128
    	maxTessellationControlPerVertexOutputComponents = 128
    	maxTessellationControlPerPatchOutputComponents  = 128
    	maxTessellationControlTotalOutputComponents     = 2048
    	maxTessellationEvaluationInputComponents        = 128
    	maxTessellationEvaluationOutputComponents       = 128
    	maxGeometryShaderInvocations                    = 32
    	maxGeometryInputComponents                      = 128
    	maxGeometryOutputComponents                     = 128
    	maxGeometryOutputVertices                       = 256
    	maxGeometryTotalOutputComponents                = 1024
    	maxFragmentInputComponents                      = 116
    	maxFragmentOutputAttachments                    = 8
    	maxFragmentDualSrcAttachments                   = 1
    	maxFragmentCombinedOutputResources              = 8
    	maxComputeSharedMemorySize                      = 65536
    	maxComputeWorkGroupCount: count = 3
    		65535
    		65535
    		65535
    	maxComputeWorkGroupInvocations                  = 1792
    	maxComputeWorkGroupSize: count = 3
    		1792
    		1792
    		1792
    	subPixelPrecisionBits                           = 8
    	subTexelPrecisionBits                           = 8
    	mipmapPrecisionBits                             = 8
    	maxDrawIndexedIndexValue                        = 4294967295
    	maxDrawIndirectCount                            = 4294967295
    	maxSamplerLodBias                               = 16
    	maxSamplerAnisotropy                            = 16
    	maxViewports                                    = 16
    	maxViewportDimensions: count = 2
    		16384
    		16384
    	viewportBoundsRange: count = 2
    		-32768
    		32767
    	viewportSubPixelBits                            = 13
    	minMemoryMapAlignment                           = 4096
    	minTexelBufferOffsetAlignment                   = 0x00000010
    	minUniformBufferOffsetAlignment                 = 0x00000040
    	minStorageBufferOffsetAlignment                 = 0x00000004
    	minTexelOffset                                  = -8
    	maxTexelOffset                                  = 7
    	minTexelGatherOffset                            = -32
    	maxTexelGatherOffset                            = 31
    	minInterpolationOffset                          = -0.5
    	maxInterpolationOffset                          = 0.4375
    	subPixelInterpolationOffsetBits                 = 4
    	maxFramebufferWidth                             = 16384
    	maxFramebufferHeight                            = 16384
    	maxFramebufferLayers                            = 2048
    	framebufferColorSampleCounts: count = 5
    		SAMPLE_COUNT_1_BIT
    		SAMPLE_COUNT_2_BIT
    		SAMPLE_COUNT_4_BIT
    		SAMPLE_COUNT_8_BIT
    		SAMPLE_COUNT_16_BIT
    	framebufferDepthSampleCounts: count = 5
    		SAMPLE_COUNT_1_BIT
    		SAMPLE_COUNT_2_BIT
    		SAMPLE_COUNT_4_BIT
    		SAMPLE_COUNT_8_BIT
    		SAMPLE_COUNT_16_BIT
    	framebufferStencilSampleCounts: count = 5
    		SAMPLE_COUNT_1_BIT
    		SAMPLE_COUNT_2_BIT
    		SAMPLE_COUNT_4_BIT
    		SAMPLE_COUNT_8_BIT
    		SAMPLE_COUNT_16_BIT
    	framebufferNoAttachmentsSampleCounts: count = 5
    		SAMPLE_COUNT_1_BIT
    		SAMPLE_COUNT_2_BIT
    		SAMPLE_COUNT_4_BIT
    		SAMPLE_COUNT_8_BIT
    		SAMPLE_COUNT_16_BIT
    	maxColorAttachments                             = 8
    	sampledImageColorSampleCounts: count = 5
    		SAMPLE_COUNT_1_BIT
    		SAMPLE_COUNT_2_BIT
    		SAMPLE_COUNT_4_BIT
    		SAMPLE_COUNT_8_BIT
    		SAMPLE_COUNT_16_BIT
    	sampledImageIntegerSampleCounts: count = 5
    		SAMPLE_COUNT_1_BIT
    		SAMPLE_COUNT_2_BIT
    		SAMPLE_COUNT_4_BIT
    		SAMPLE_COUNT_8_BIT
    		SAMPLE_COUNT_16_BIT
    	sampledImageDepthSampleCounts: count = 5
    		SAMPLE_COUNT_1_BIT
    		SAMPLE_COUNT_2_BIT
    		SAMPLE_COUNT_4_BIT
    		SAMPLE_COUNT_8_BIT
    		SAMPLE_COUNT_16_BIT
    	sampledImageStencilSampleCounts: count = 5
    		SAMPLE_COUNT_1_BIT
    		SAMPLE_COUNT_2_BIT
    		SAMPLE_COUNT_4_BIT
    		SAMPLE_COUNT_8_BIT
    		SAMPLE_COUNT_16_BIT
    	storageImageSampleCounts: count = 1
    		SAMPLE_COUNT_1_BIT
    	maxSampleMaskWords                              = 1
    	timestampComputeAndGraphics                     = true
    	timestampPeriod                                 = 83.3333
    	maxClipDistances                                = 8
    	maxCullDistances                                = 8
    	maxCombinedClipAndCullDistances                 = 8
    	discreteQueuePriorities                         = 2
    	pointSizeRange: count = 2
    		0.125
    		255.875
    	lineWidthRange: count = 2
    		0
    		2047.99
    	pointSizeGranularity                            = 0.125
    	lineWidthGranularity                            = 0.0078125
    	strictLines                                     = false
    	standardSampleLocations                         = true
    	optimalBufferCopyOffsetAlignment                = 0x00000080
    	optimalBufferCopyRowPitchAlignment              = 0x00000080
    	nonCoherentAtomSize                             = 0x00000040
    
    VkPhysicalDeviceSparseProperties:
    ---------------------------------
    	residencyStandard2DBlockShape            = false
    	residencyStandard2DMultisampleBlockShape = false
    	residencyStandard3DBlockShape            = false
    	residencyAlignedMipSize                  = false
    	residencyNonResidentStrict               = false
    
    VkPhysicalDeviceConservativeRasterizationPropertiesEXT:
    -------------------------------------------------------
    	primitiveOverestimationSize                 = 0.00195312
    	maxExtraPrimitiveOverestimationSize         = 0
    	extraPrimitiveOverestimationSizeGranularity = 0
    	primitiveUnderestimation                    = false
    	conservativePointAndLineRasterization       = false
    	degenerateTrianglesRasterized               = true
    	degenerateLinesRasterized                   = false
    	fullyCoveredFragmentShaderInputVariable     = false
    	conservativeRasterizationPostDepthCoverage  = true
    
    VkPhysicalDeviceCustomBorderColorPropertiesEXT:
    -----------------------------------------------
    	maxCustomBorderColorSamplers = 4096
    
    VkPhysicalDeviceDepthStencilResolvePropertiesKHR:
    -------------------------------------------------
    	supportedDepthResolveModes: count = 4
    		RESOLVE_MODE_SAMPLE_ZERO_BIT
    		RESOLVE_MODE_AVERAGE_BIT
    		RESOLVE_MODE_MIN_BIT
    		RESOLVE_MODE_MAX_BIT
    	supportedStencilResolveModes: count = 3
    		RESOLVE_MODE_SAMPLE_ZERO_BIT
    		RESOLVE_MODE_MIN_BIT
    		RESOLVE_MODE_MAX_BIT
    	independentResolveNone = true
    	independentResolve     = true
    
    VkPhysicalDeviceDescriptorIndexingPropertiesEXT:
    ------------------------------------------------
    	maxUpdateAfterBindDescriptorsInAllPools              = 1048576
    	shaderUniformBufferArrayNonUniformIndexingNative     = false
    	shaderSampledImageArrayNonUniformIndexingNative      = false
    	shaderStorageBufferArrayNonUniformIndexingNative     = true
    	shaderStorageImageArrayNonUniformIndexingNative      = false
    	shaderInputAttachmentArrayNonUniformIndexingNative   = false
    	robustBufferAccessUpdateAfterBind                    = true
    	quadDivergentImplicitLod                             = false
    	maxPerStageDescriptorUpdateAfterBindSamplers         = 1048576
    	maxPerStageDescriptorUpdateAfterBindUniformBuffers   = 64
    	maxPerStageDescriptorUpdateAfterBindStorageBuffers   = 4294967295
    	maxPerStageDescriptorUpdateAfterBindSampledImages    = 1048576
    	maxPerStageDescriptorUpdateAfterBindStorageImages    = 1048576
    	maxPerStageDescriptorUpdateAfterBindInputAttachments = 64
    	maxPerStageUpdateAfterBindResources                  = 4294967295
    	maxDescriptorSetUpdateAfterBindSamplers              = 1048576
    	maxDescriptorSetUpdateAfterBindUniformBuffers        = 384
    	maxDescriptorSetUpdateAfterBindUniformBuffersDynamic = 8
    	maxDescriptorSetUpdateAfterBindStorageBuffers        = 4294967295
    	maxDescriptorSetUpdateAfterBindStorageBuffersDynamic = 8
    	maxDescriptorSetUpdateAfterBindSampledImages         = 1048576
    	maxDescriptorSetUpdateAfterBindStorageImages         = 1048576
    	maxDescriptorSetUpdateAfterBindInputAttachments      = 256
    
    VkPhysicalDeviceDriverPropertiesKHR:
    ------------------------------------
    	driverID           = DRIVER_ID_INTEL_OPEN_SOURCE_MESA
    	driverName         = Intel open-source Mesa driver
    	driverInfo         = Mesa 21.1.7
    	conformanceVersion = 1.2.0.0
    
    VkPhysicalDeviceExternalMemoryHostPropertiesEXT:
    ------------------------------------------------
    	minImportedHostPointerAlignment = 0x00001000
    
    VkPhysicalDeviceFloatControlsPropertiesKHR:
    -------------------------------------------
    	denormBehaviorIndependence            = SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL
    	roundingModeIndependence              = SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE
    	shaderSignedZeroInfNanPreserveFloat16 = true
    	shaderSignedZeroInfNanPreserveFloat32 = true
    	shaderSignedZeroInfNanPreserveFloat64 = true
    	shaderDenormPreserveFloat16           = true
    	shaderDenormPreserveFloat32           = true
    	shaderDenormPreserveFloat64           = true
    	shaderDenormFlushToZeroFloat16        = false
    	shaderDenormFlushToZeroFloat32        = true
    	shaderDenormFlushToZeroFloat64        = true
    	shaderRoundingModeRTEFloat16          = true
    	shaderRoundingModeRTEFloat32          = true
    	shaderRoundingModeRTEFloat64          = true
    	shaderRoundingModeRTZFloat16          = true
    	shaderRoundingModeRTZFloat32          = true
    	shaderRoundingModeRTZFloat64          = true
    
    VkPhysicalDeviceIDPropertiesKHR:
    --------------------------------
    	deviceUUID      = 6fed32b4-f811-37a0-a943-c38b9a77e380
    	driverUUID      = bf217a48-20cb-173a-7ea6-8717c105c73d
    	deviceNodeMask  = 0
    	deviceLUIDValid = false
    
    VkPhysicalDeviceInlineUniformBlockPropertiesEXT:
    ------------------------------------------------
    	maxInlineUniformBlockSize                               = 4096
    	maxPerStageDescriptorInlineUniformBlocks                = 32
    	maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks = 32
    	maxDescriptorSetInlineUniformBlocks                     = 32
    	maxDescriptorSetUpdateAfterBindInlineUniformBlocks      = 32
    
    VkPhysicalDeviceLineRasterizationPropertiesEXT:
    -----------------------------------------------
    	lineSubPixelPrecisionBits = 4
    
    VkPhysicalDeviceMaintenance3PropertiesKHR:
    ------------------------------------------
    	maxPerSetDescriptors    = 1024
    	maxMemoryAllocationSize = 0x80000000
    
    VkPhysicalDeviceMultiviewPropertiesKHR:
    ---------------------------------------
    	maxMultiviewViewCount     = 16
    	maxMultiviewInstanceIndex = 268435455
    
    VkPhysicalDevicePCIBusInfoPropertiesEXT:
    ----------------------------------------
    	pciDomain   = 0
    	pciBus      = 0
    	pciDevice   = 2
    	pciFunction = 0
    
    VkPhysicalDevicePerformanceQueryPropertiesKHR:
    ----------------------------------------------
    	allowCommandBufferQueryCopies = false
    
    VkPhysicalDevicePointClippingPropertiesKHR:
    -------------------------------------------
    	pointClippingBehavior = POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY
    
    VkPhysicalDevicePushDescriptorPropertiesKHR:
    --------------------------------------------
    	maxPushDescriptors = 32
    
    VkPhysicalDeviceRobustness2PropertiesEXT:
    -----------------------------------------
    	robustStorageBufferAccessSizeAlignment = 0x00000004
    	robustUniformBufferAccessSizeAlignment = 0x00000040
    
    VkPhysicalDeviceSampleLocationsPropertiesEXT:
    ---------------------------------------------
    	sampleLocationSampleCounts: count = 5
    		SAMPLE_COUNT_1_BIT
    		SAMPLE_COUNT_2_BIT
    		SAMPLE_COUNT_4_BIT
    		SAMPLE_COUNT_8_BIT
    		SAMPLE_COUNT_16_BIT
    	maxSampleLocationGridSize:
    		width  = 1
    		height = 1
    	sampleLocationCoordinateRange: count = 2
    		0
    		0.9375
    	sampleLocationSubPixelBits       = 4
    	variableSampleLocations          = true
    
    VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT:
    -------------------------------------------------
    	filterMinmaxSingleComponentFormats = true
    	filterMinmaxImageComponentMapping  = true
    
    VkPhysicalDeviceSubgroupSizeControlPropertiesEXT:
    -------------------------------------------------
    	minSubgroupSize              = 8
    	maxSubgroupSize              = 32
    	maxComputeWorkgroupSubgroups = 56
    	requiredSubgroupSizeStages: count = 2
    		SHADER_STAGE_COMPUTE_BIT
    		SHADER_STAGE_ALL
    
    VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT:
    --------------------------------------------------
    	storageTexelBufferOffsetAlignmentBytes       = 0x00000010
    	storageTexelBufferOffsetSingleTexelAlignment = true
    	uniformTexelBufferOffsetAlignmentBytes       = 0x00000001
    	uniformTexelBufferOffsetSingleTexelAlignment = false
    
    VkPhysicalDeviceTimelineSemaphorePropertiesKHR:
    -----------------------------------------------
    	maxTimelineSemaphoreValueDifference = 18446744073709551615
    
    VkPhysicalDeviceTransformFeedbackPropertiesEXT:
    -----------------------------------------------
    	maxTransformFeedbackStreams                = 4
    	maxTransformFeedbackBuffers                = 4
    	maxTransformFeedbackBufferSize             = 0x100000000
    	maxTransformFeedbackStreamDataSize         = 512
    	maxTransformFeedbackBufferDataSize         = 512
    	maxTransformFeedbackBufferDataStride       = 2048
    	transformFeedbackQueries                   = true
    	transformFeedbackStreamsLinesTriangles     = false
    	transformFeedbackRasterizationStreamSelect = false
    	transformFeedbackDraw                      = true
    
    VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT:
    ----------------------------------------------------
    	maxVertexAttribDivisor = 268435455
    
    
    Device Extensions: count = 101
    ------------------------------
    	VK_EXT_4444_formats                       : extension revision 1
    	VK_EXT_buffer_device_address              : extension revision 2
    	VK_EXT_calibrated_timestamps              : extension revision 1
    	VK_EXT_conditional_rendering              : extension revision 2
    	VK_EXT_conservative_rasterization         : extension revision 1
    	VK_EXT_custom_border_color                : extension revision 12
    	VK_EXT_depth_clip_enable                  : extension revision 1
    	VK_EXT_descriptor_indexing                : extension revision 2
    	VK_EXT_display_control                    : extension revision 1
    	VK_EXT_extended_dynamic_state             : extension revision 1
    	VK_EXT_external_memory_dma_buf            : extension revision 1
    	VK_EXT_external_memory_host               : extension revision 1
    	VK_EXT_fragment_shader_interlock          : extension revision 1
    	VK_EXT_global_priority                    : extension revision 2
    	VK_EXT_host_query_reset                   : extension revision 1
    	VK_EXT_image_drm_format_modifier          : extension revision 1
    	VK_EXT_image_robustness                   : extension revision 1
    	VK_EXT_index_type_uint8                   : extension revision 1
    	VK_EXT_inline_uniform_block               : extension revision 1
    	VK_EXT_line_rasterization                 : extension revision 1
    	VK_EXT_memory_budget                      : extension revision 1
    	VK_EXT_pci_bus_info                       : extension revision 2
    	VK_EXT_pipeline_creation_cache_control    : extension revision 3
    	VK_EXT_pipeline_creation_feedback         : extension revision 1
    	VK_EXT_post_depth_coverage                : extension revision 1
    	VK_EXT_private_data                       : extension revision 1
    	VK_EXT_queue_family_foreign               : extension revision 1
    	VK_EXT_robustness2                        : extension revision 1
    	VK_EXT_sample_locations                   : extension revision 1
    	VK_EXT_sampler_filter_minmax              : extension revision 2
    	VK_EXT_scalar_block_layout                : extension revision 1
    	VK_EXT_separate_stencil_usage             : extension revision 1
    	VK_EXT_shader_atomic_float                : extension revision 1
    	VK_EXT_shader_demote_to_helper_invocation : extension revision 1
    	VK_EXT_shader_stencil_export              : extension revision 1
    	VK_EXT_shader_subgroup_ballot             : extension revision 1
    	VK_EXT_shader_subgroup_vote               : extension revision 1
    	VK_EXT_shader_viewport_index_layer        : extension revision 1
    	VK_EXT_subgroup_size_control              : extension revision 2
    	VK_EXT_texel_buffer_alignment             : extension revision 1
    	VK_EXT_transform_feedback                 : extension revision 1
    	VK_EXT_vertex_attribute_divisor           : extension revision 3
    	VK_EXT_ycbcr_image_arrays                 : extension revision 1
    	VK_GOOGLE_decorate_string                 : extension revision 1
    	VK_GOOGLE_hlsl_functionality1             : extension revision 1
    	VK_GOOGLE_user_type                       : extension revision 1
    	VK_INTEL_performance_query                : extension revision 2
    	VK_INTEL_shader_integer_functions2        : extension revision 1
    	VK_KHR_16bit_storage                      : extension revision 1
    	VK_KHR_8bit_storage                       : extension revision 1
    	VK_KHR_bind_memory2                       : extension revision 1
    	VK_KHR_buffer_device_address              : extension revision 1
    	VK_KHR_copy_commands2                     : extension revision 1
    	VK_KHR_create_renderpass2                 : extension revision 1
    	VK_KHR_dedicated_allocation               : extension revision 3
    	VK_KHR_deferred_host_operations           : extension revision 4
    	VK_KHR_depth_stencil_resolve              : extension revision 1
    	VK_KHR_descriptor_update_template         : extension revision 1
    	VK_KHR_device_group                       : extension revision 4
    	VK_KHR_draw_indirect_count                : extension revision 1
    	VK_KHR_driver_properties                  : extension revision 1
    	VK_KHR_external_fence                     : extension revision 1
    	VK_KHR_external_fence_fd                  : extension revision 1
    	VK_KHR_external_memory                    : extension revision 1
    	VK_KHR_external_memory_fd                 : extension revision 1
    	VK_KHR_external_semaphore                 : extension revision 1
    	VK_KHR_external_semaphore_fd              : extension revision 1
    	VK_KHR_get_memory_requirements2           : extension revision 1
    	VK_KHR_image_format_list                  : extension revision 1
    	VK_KHR_imageless_framebuffer              : extension revision 1
    	VK_KHR_incremental_present                : extension revision 1
    	VK_KHR_maintenance1                       : extension revision 2
    	VK_KHR_maintenance2                       : extension revision 1
    	VK_KHR_maintenance3                       : extension revision 1
    	VK_KHR_multiview                          : extension revision 1
    	VK_KHR_performance_query                  : extension revision 1
    	VK_KHR_pipeline_executable_properties     : extension revision 1
    	VK_KHR_push_descriptor                    : extension revision 2
    	VK_KHR_relaxed_block_layout               : extension revision 1
    	VK_KHR_sampler_mirror_clamp_to_edge       : extension revision 3
    	VK_KHR_sampler_ycbcr_conversion           : extension revision 14
    	VK_KHR_separate_depth_stencil_layouts     : extension revision 1
    	VK_KHR_shader_atomic_int64                : extension revision 1
    	VK_KHR_shader_clock                       : extension revision 1
    	VK_KHR_shader_draw_parameters             : extension revision 1
    	VK_KHR_shader_float16_int8                : extension revision 1
    	VK_KHR_shader_float_controls              : extension revision 4
    	VK_KHR_shader_non_semantic_info           : extension revision 1
    	VK_KHR_shader_subgroup_extended_types     : extension revision 1
    	VK_KHR_shader_terminate_invocation        : extension revision 1
    	VK_KHR_spirv_1_4                          : extension revision 1
    	VK_KHR_storage_buffer_storage_class       : extension revision 1
    	VK_KHR_swapchain                          : extension revision 70
    	VK_KHR_swapchain_mutable_format           : extension revision 1
    	VK_KHR_timeline_semaphore                 : extension revision 2
    	VK_KHR_uniform_buffer_standard_layout     : extension revision 1
    	VK_KHR_variable_pointers                  : extension revision 1
    	VK_KHR_vulkan_memory_model                : extension revision 3
    	VK_KHR_workgroup_memory_explicit_layout   : extension revision 1
    	VK_KHR_zero_initialize_workgroup_memory   : extension revision 1
    	VK_NV_compute_shader_derivatives          : extension revision 1
    
    VkQueueFamilyProperties:
    ========================
    	queueProperties[0]:
    	-------------------
    		minImageTransferGranularity = (1,1,1)
    		queueCount                  = 1
    		queueFlags                  = QUEUE_GRAPHICS | QUEUE_COMPUTE | QUEUE_TRANSFER
    		timestampValidBits          = 36
    		present support             = true
    
    VkPhysicalDeviceMemoryProperties:
    =================================
    memoryHeaps: count = 1
    	memoryHeaps[0]:
    		size   = 6053910528 (0x168d75800) (5.64 GiB)
    		budget = 849346560 (0x32a00000) (810.00 MiB)
    		usage  = 0 (0x00000000) (0.00 B)
    		flags: count = 1
    			MEMORY_HEAP_DEVICE_LOCAL_BIT
    memoryTypes: count = 1
    	memoryTypes[0]:
    		heapIndex     = 0
    		propertyFlags = 0x000f: count = 4
    			MEMORY_PROPERTY_DEVICE_LOCAL_BIT
    			MEMORY_PROPERTY_HOST_VISIBLE_BIT
    			MEMORY_PROPERTY_HOST_COHERENT_BIT
    			MEMORY_PROPERTY_HOST_CACHED_BIT
    		usable for:
    			IMAGE_TILING_OPTIMAL:
    				color images
    				FORMAT_D16_UNORM
    				FORMAT_X8_D24_UNORM_PACK32
    				FORMAT_D32_SFLOAT
    				FORMAT_S8_UINT
    				FORMAT_D24_UNORM_S8_UINT
    				FORMAT_D32_SFLOAT_S8_UINT
    				(non-sparse)
    			IMAGE_TILING_LINEAR:
    				color images
    				(non-sparse)
    
    VkPhysicalDeviceFeatures:
    =========================
    	robustBufferAccess                      = true
    	fullDrawIndexUint32                     = true
    	imageCubeArray                          = true
    	independentBlend                        = true
    	geometryShader                          = true
    	tessellationShader                      = true
    	sampleRateShading                       = true
    	dualSrcBlend                            = true
    	logicOp                                 = true
    	multiDrawIndirect                       = true
    	drawIndirectFirstInstance               = true
    	depthClamp                              = true
    	depthBiasClamp                          = true
    	fillModeNonSolid                        = true
    	depthBounds                             = false
    	wideLines                               = true
    	largePoints                             = true
    	alphaToOne                              = true
    	multiViewport                           = true
    	samplerAnisotropy                       = true
    	textureCompressionETC2                  = true
    	textureCompressionASTC_LDR              = true
    	textureCompressionBC                    = true
    	occlusionQueryPrecise                   = true
    	pipelineStatisticsQuery                 = true
    	vertexPipelineStoresAndAtomics          = true
    	fragmentStoresAndAtomics                = true
    	shaderTessellationAndGeometryPointSize  = true
    	shaderImageGatherExtended               = true
    	shaderStorageImageExtendedFormats       = true
    	shaderStorageImageMultisample           = false
    	shaderStorageImageReadWithoutFormat     = false
    	shaderStorageImageWriteWithoutFormat    = true
    	shaderUniformBufferArrayDynamicIndexing = true
    	shaderSampledImageArrayDynamicIndexing  = true
    	shaderStorageBufferArrayDynamicIndexing = true
    	shaderStorageImageArrayDynamicIndexing  = true
    	shaderClipDistance                      = true
    	shaderCullDistance                      = true
    	shaderFloat64                           = true
    	shaderInt64                             = true
    	shaderInt16                             = true
    	shaderResourceResidency                 = false
    	shaderResourceMinLod                    = true
    	sparseBinding                           = false
    	sparseResidencyBuffer                   = false
    	sparseResidencyImage2D                  = false
    	sparseResidencyImage3D                  = false
    	sparseResidency2Samples                 = false
    	sparseResidency4Samples                 = false
    	sparseResidency8Samples                 = false
    	sparseResidency16Samples                = false
    	sparseResidencyAliased                  = false
    	variableMultisampleRate                 = true
    	inheritedQueries                        = true
    
    VkPhysicalDevice16BitStorageFeaturesKHR:
    ----------------------------------------
    	storageBuffer16BitAccess           = true
    	uniformAndStorageBuffer16BitAccess = true
    	storagePushConstant16              = true
    	storageInputOutput16               = false
    
    VkPhysicalDevice4444FormatsFeaturesEXT:
    ---------------------------------------
    	formatA4R4G4B4 = true
    	formatA4B4G4R4 = false
    
    VkPhysicalDevice8BitStorageFeaturesKHR:
    ---------------------------------------
    	storageBuffer8BitAccess           = true
    	uniformAndStorageBuffer8BitAccess = true
    	storagePushConstant8              = true
    
    VkPhysicalDeviceBufferDeviceAddressFeaturesKHR:
    -----------------------------------------------
    	bufferDeviceAddress              = true
    	bufferDeviceAddressCaptureReplay = true
    	bufferDeviceAddressMultiDevice   = false
    
    VkPhysicalDeviceBufferDeviceAddressFeaturesEXT:
    -----------------------------------------------
    	bufferDeviceAddress              = true
    	bufferDeviceAddressCaptureReplay = false
    	bufferDeviceAddressMultiDevice   = false
    
    VkPhysicalDeviceConditionalRenderingFeaturesEXT:
    ------------------------------------------------
    	conditionalRendering          = true
    	inheritedConditionalRendering = true
    
    VkPhysicalDeviceCustomBorderColorFeaturesEXT:
    ---------------------------------------------
    	customBorderColors             = true
    	customBorderColorWithoutFormat = true
    
    VkPhysicalDeviceDepthClipEnableFeaturesEXT:
    -------------------------------------------
    	depthClipEnable = true
    
    VkPhysicalDeviceDescriptorIndexingFeaturesEXT:
    ----------------------------------------------
    	shaderInputAttachmentArrayDynamicIndexing          = false
    	shaderUniformTexelBufferArrayDynamicIndexing       = true
    	shaderStorageTexelBufferArrayDynamicIndexing       = true
    	shaderUniformBufferArrayNonUniformIndexing         = false
    	shaderSampledImageArrayNonUniformIndexing          = true
    	shaderStorageBufferArrayNonUniformIndexing         = true
    	shaderStorageImageArrayNonUniformIndexing          = true
    	shaderInputAttachmentArrayNonUniformIndexing       = false
    	shaderUniformTexelBufferArrayNonUniformIndexing    = true
    	shaderStorageTexelBufferArrayNonUniformIndexing    = true
    	descriptorBindingUniformBufferUpdateAfterBind      = false
    	descriptorBindingSampledImageUpdateAfterBind       = true
    	descriptorBindingStorageImageUpdateAfterBind       = true
    	descriptorBindingStorageBufferUpdateAfterBind      = true
    	descriptorBindingUniformTexelBufferUpdateAfterBind = true
    	descriptorBindingStorageTexelBufferUpdateAfterBind = true
    	descriptorBindingUpdateUnusedWhilePending          = true
    	descriptorBindingPartiallyBound                    = true
    	descriptorBindingVariableDescriptorCount           = true
    	runtimeDescriptorArray                             = true
    
    VkPhysicalDeviceExtendedDynamicStateFeaturesEXT:
    ------------------------------------------------
    	extendedDynamicState = true
    
    VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT:
    ---------------------------------------------------
    	fragmentShaderSampleInterlock      = true
    	fragmentShaderPixelInterlock       = true
    	fragmentShaderShadingRateInterlock = false
    
    VkPhysicalDeviceHostQueryResetFeaturesEXT:
    ------------------------------------------
    	hostQueryReset = true
    
    VkPhysicalDeviceImageRobustnessFeaturesEXT:
    -------------------------------------------
    	robustImageAccess = true
    
    VkPhysicalDeviceImagelessFramebufferFeaturesKHR:
    ------------------------------------------------
    	imagelessFramebuffer = true
    
    VkPhysicalDeviceIndexTypeUint8FeaturesEXT:
    ------------------------------------------
    	indexTypeUint8 = true
    
    VkPhysicalDeviceInlineUniformBlockFeaturesEXT:
    ----------------------------------------------
    	inlineUniformBlock                                 = true
    	descriptorBindingInlineUniformBlockUpdateAfterBind = true
    
    VkPhysicalDeviceLineRasterizationFeaturesEXT:
    ---------------------------------------------
    	rectangularLines         = true
    	bresenhamLines           = true
    	smoothLines              = true
    	stippledRectangularLines = false
    	stippledBresenhamLines   = true
    	stippledSmoothLines      = false
    
    VkPhysicalDeviceMultiviewFeaturesKHR:
    -------------------------------------
    	multiview                   = true
    	multiviewGeometryShader     = true
    	multiviewTessellationShader = true
    
    VkPhysicalDevicePerformanceQueryFeaturesKHR:
    --------------------------------------------
    	performanceCounterQueryPools         = true
    	performanceCounterMultipleQueryPools = false
    
    VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT:
    --------------------------------------------------------
    	pipelineCreationCacheControl = true
    
    VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR:
    --------------------------------------------------------
    	pipelineExecutableInfo = true
    
    VkPhysicalDevicePrivateDataFeaturesEXT:
    ---------------------------------------
    	privateData = true
    
    VkPhysicalDeviceRobustness2FeaturesEXT:
    ---------------------------------------
    	robustBufferAccess2 = true
    	robustImageAccess2  = true
    	nullDescriptor      = true
    
    VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR:
    --------------------------------------------------
    	samplerYcbcrConversion = true
    
    VkPhysicalDeviceScalarBlockLayoutFeaturesEXT:
    ---------------------------------------------
    	scalarBlockLayout = true
    
    VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR:
    -------------------------------------------------------
    	separateDepthStencilLayouts = true
    
    VkPhysicalDeviceShaderAtomicFloatFeaturesEXT:
    ---------------------------------------------
    	shaderBufferFloat32Atomics   = true
    	shaderBufferFloat32AtomicAdd = false
    	shaderBufferFloat64Atomics   = false
    	shaderBufferFloat64AtomicAdd = false
    	shaderSharedFloat32Atomics   = true
    	shaderSharedFloat32AtomicAdd = false
    	shaderSharedFloat64Atomics   = false
    	shaderSharedFloat64AtomicAdd = false
    	shaderImageFloat32Atomics    = true
    	shaderImageFloat32AtomicAdd  = false
    	sparseImageFloat32Atomics    = false
    	sparseImageFloat32AtomicAdd  = false
    
    VkPhysicalDeviceShaderAtomicInt64FeaturesKHR:
    ---------------------------------------------
    	shaderBufferInt64Atomics = true
    	shaderSharedInt64Atomics = false
    
    VkPhysicalDeviceShaderClockFeaturesKHR:
    ---------------------------------------
    	shaderSubgroupClock = true
    	shaderDeviceClock   = false
    
    VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT:
    ----------------------------------------------------------
    	shaderDemoteToHelperInvocation = true
    
    VkPhysicalDeviceFloat16Int8FeaturesKHR:
    ---------------------------------------
    	shaderFloat16 = true
    	shaderInt8    = true
    
    VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR:
    -------------------------------------------------------
    	shaderSubgroupExtendedTypes = true
    
    VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR:
    -----------------------------------------------------
    	shaderTerminateInvocation = true
    
    VkPhysicalDeviceSubgroupSizeControlFeaturesEXT:
    -----------------------------------------------
    	subgroupSizeControl  = true
    	computeFullSubgroups = true
    
    VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT:
    ------------------------------------------------
    	texelBufferAlignment = true
    
    VkPhysicalDeviceTimelineSemaphoreFeaturesKHR:
    ---------------------------------------------
    	timelineSemaphore = true
    
    VkPhysicalDeviceTransformFeedbackFeaturesEXT:
    ---------------------------------------------
    	transformFeedback = true
    	geometryStreams   = true
    
    VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR:
    -------------------------------------------------------
    	uniformBufferStandardLayout = true
    
    VkPhysicalDeviceVariablePointersFeaturesKHR:
    --------------------------------------------
    	variablePointersStorageBuffer = true
    	variablePointers              = true
    
    VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT:
    --------------------------------------------------
    	vertexAttributeInstanceRateDivisor     = true
    	vertexAttributeInstanceRateZeroDivisor = true
    
    VkPhysicalDeviceVulkanMemoryModelFeaturesKHR:
    ---------------------------------------------
    	vulkanMemoryModel                             = true
    	vulkanMemoryModelDeviceScope                  = true
    	vulkanMemoryModelAvailabilityVisibilityChains = true
    
    VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR:
    ---------------------------------------------------------
    	workgroupMemoryExplicitLayout                  = true
    	workgroupMemoryExplicitLayoutScalarBlockLayout = true
    	workgroupMemoryExplicitLayout8BitAccess        = true
    	workgroupMemoryExplicitLayout16BitAccess       = true
    
    VkPhysicalDeviceYcbcrImageArraysFeaturesEXT:
    --------------------------------------------
    	ycbcrImageArrays = true
    
    VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR:
    ---------------------------------------------------------
    	shaderZeroInitializeWorkgroupMemory = true
    
    
    GPU1:
    VkPhysicalDeviceProperties:
    ---------------------------
    	apiVersion        = 4198568 (1.1.168)
    	driverVersion     = 1 (0x0001)
    	vendorID          = 0x10005
    	deviceID          = 0x0000
    	deviceType        = PHYSICAL_DEVICE_TYPE_CPU
    	deviceName        = llvmpipe (LLVM 12.0.1, 256 bits)
    	pipelineCacheUUID = 76616c2d-6c6c-206e-6f3d-270000000000
    
    VkPhysicalDeviceLimits:
    -----------------------
    	maxImageDimension1D                             = 16384
    	maxImageDimension2D                             = 16384
    	maxImageDimension3D                             = 4096
    	maxImageDimensionCube                           = 32768
    	maxImageArrayLayers                             = 2048
    	maxTexelBufferElements                          = 134217728
    	maxUniformBufferRange                           = 65536
    	maxStorageBufferRange                           = 134217728
    	maxPushConstantsSize                            = 128
    	maxMemoryAllocationCount                        = 4294967295
    	maxSamplerAllocationCount                       = 32768
    	bufferImageGranularity                          = 0x00000040
    	sparseAddressSpaceSize                          = 0x00000000
    	maxBoundDescriptorSets                          = 8
    	maxPerStageDescriptorSamplers                   = 32
    	maxPerStageDescriptorUniformBuffers             = 16
    	maxPerStageDescriptorStorageBuffers             = 16
    	maxPerStageDescriptorSampledImages              = 128
    	maxPerStageDescriptorStorageImages              = 16
    	maxPerStageDescriptorInputAttachments           = 8
    	maxPerStageResources                            = 128
    	maxDescriptorSetSamplers                        = 32768
    	maxDescriptorSetUniformBuffers                  = 256
    	maxDescriptorSetUniformBuffersDynamic           = 256
    	maxDescriptorSetStorageBuffers                  = 256
    	maxDescriptorSetStorageBuffersDynamic           = 256
    	maxDescriptorSetSampledImages                   = 256
    	maxDescriptorSetStorageImages                   = 256
    	maxDescriptorSetInputAttachments                = 256
    	maxVertexInputAttributes                        = 32
    	maxVertexInputBindings                          = 32
    	maxVertexInputAttributeOffset                   = 2047
    	maxVertexInputBindingStride                     = 2048
    	maxVertexOutputComponents                       = 128
    	maxTessellationGenerationLevel                  = 64
    	maxTessellationPatchSize                        = 32
    	maxTessellationControlPerVertexInputComponents  = 128
    	maxTessellationControlPerVertexOutputComponents = 128
    	maxTessellationControlPerPatchOutputComponents  = 128
    	maxTessellationControlTotalOutputComponents     = 4096
    	maxTessellationEvaluationInputComponents        = 128
    	maxTessellationEvaluationOutputComponents       = 128
    	maxGeometryShaderInvocations                    = 32
    	maxGeometryInputComponents                      = 64
    	maxGeometryOutputComponents                     = 128
    	maxGeometryOutputVertices                       = 1024
    	maxGeometryTotalOutputComponents                = 1024
    	maxFragmentInputComponents                      = 128
    	maxFragmentOutputAttachments                    = 8
    	maxFragmentDualSrcAttachments                   = 2
    	maxFragmentCombinedOutputResources              = 8
    	maxComputeSharedMemorySize                      = 32768
    	maxComputeWorkGroupCount: count = 3
    		65535
    		65535
    		65535
    	maxComputeWorkGroupInvocations                  = 1024
    	maxComputeWorkGroupSize: count = 3
    		1024
    		1024
    		1024
    	subPixelPrecisionBits                           = 8
    	subTexelPrecisionBits                           = 8
    	mipmapPrecisionBits                             = 8
    	maxDrawIndexedIndexValue                        = 4294967295
    	maxDrawIndirectCount                            = 4294967295
    	maxSamplerLodBias                               = 16
    	maxSamplerAnisotropy                            = 16
    	maxViewports                                    = 16
    	maxViewportDimensions: count = 2
    		16384
    		16384
    	viewportBoundsRange: count = 2
    		-32768
    		32768
    	viewportSubPixelBits                            = 0
    	minMemoryMapAlignment                           = 64
    	minTexelBufferOffsetAlignment                   = 0x00000010
    	minUniformBufferOffsetAlignment                 = 0x00000010
    	minStorageBufferOffsetAlignment                 = 0x00000010
    	minTexelOffset                                  = -32
    	maxTexelOffset                                  = 31
    	minTexelGatherOffset                            = -32
    	maxTexelGatherOffset                            = 31
    	minInterpolationOffset                          = -2
    	maxInterpolationOffset                          = 2
    	subPixelInterpolationOffsetBits                 = 8
    	maxFramebufferWidth                             = 16384
    	maxFramebufferHeight                            = 16384
    	maxFramebufferLayers                            = 2048
    	framebufferColorSampleCounts: count = 2
    		SAMPLE_COUNT_1_BIT
    		SAMPLE_COUNT_4_BIT
    	framebufferDepthSampleCounts: count = 2
    		SAMPLE_COUNT_1_BIT
    		SAMPLE_COUNT_4_BIT
    	framebufferStencilSampleCounts: count = 2
    		SAMPLE_COUNT_1_BIT
    		SAMPLE_COUNT_4_BIT
    	framebufferNoAttachmentsSampleCounts: count = 2
    		SAMPLE_COUNT_1_BIT
    		SAMPLE_COUNT_4_BIT
    	maxColorAttachments                             = 8
    	sampledImageColorSampleCounts: count = 2
    		SAMPLE_COUNT_1_BIT
    		SAMPLE_COUNT_4_BIT
    	sampledImageIntegerSampleCounts: count = 2
    		SAMPLE_COUNT_1_BIT
    		SAMPLE_COUNT_4_BIT
    	sampledImageDepthSampleCounts: count = 2
    		SAMPLE_COUNT_1_BIT
    		SAMPLE_COUNT_4_BIT
    	sampledImageStencilSampleCounts: count = 2
    		SAMPLE_COUNT_1_BIT
    		SAMPLE_COUNT_4_BIT
    	storageImageSampleCounts: count = 2
    		SAMPLE_COUNT_1_BIT
    		SAMPLE_COUNT_4_BIT
    	maxSampleMaskWords                              = 1
    	timestampComputeAndGraphics                     = true
    	timestampPeriod                                 = 1
    	maxClipDistances                                = 8
    	maxCullDistances                                = 8
    	maxCombinedClipAndCullDistances                 = 8
    	discreteQueuePriorities                         = 2
    	pointSizeRange: count = 2
    		0
    		255
    	lineWidthRange: count = 2
    		1
    		1
    	pointSizeGranularity                            = 0.125
    	lineWidthGranularity                            = 0
    	strictLines                                     = false
    	standardSampleLocations                         = true
    	optimalBufferCopyOffsetAlignment                = 0x00000080
    	optimalBufferCopyRowPitchAlignment              = 0x00000080
    	nonCoherentAtomSize                             = 0x00000040
    
    VkPhysicalDeviceSparseProperties:
    ---------------------------------
    	residencyStandard2DBlockShape            = false
    	residencyStandard2DMultisampleBlockShape = false
    	residencyStandard3DBlockShape            = false
    	residencyAlignedMipSize                  = false
    	residencyNonResidentStrict               = false
    
    VkPhysicalDeviceDriverPropertiesKHR:
    ------------------------------------
    	driverID           = DRIVER_ID_MESA_LLVMPIPE
    	driverName         = llvmpipe
    	driverInfo         = Mesa 21.1.7 (LLVM 12.0.1)
    	conformanceVersion = 1.0.0.0
    
    VkPhysicalDeviceIDPropertiesKHR:
    --------------------------------
    	deviceUUID      = 00000000-0000-0000-0000-000000000000
    	driverUUID      = 00000000-0000-0000-0000-000000000000
    	deviceNodeMask  = 0
    	deviceLUIDValid = false
    
    VkPhysicalDeviceMaintenance3PropertiesKHR:
    ------------------------------------------
    	maxPerSetDescriptors    = 1024
    	maxMemoryAllocationSize = 0x80000000
    
    VkPhysicalDeviceMultiviewPropertiesKHR:
    ---------------------------------------
    	maxMultiviewViewCount     = 6
    	maxMultiviewInstanceIndex = 2147483647
    
    VkPhysicalDevicePointClippingPropertiesKHR:
    -------------------------------------------
    	pointClippingBehavior = POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES
    
    VkPhysicalDevicePushDescriptorPropertiesKHR:
    --------------------------------------------
    	maxPushDescriptors = 32
    
    VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT:
    -------------------------------------------------
    	filterMinmaxSingleComponentFormats = true
    	filterMinmaxImageComponentMapping  = true
    
    VkPhysicalDeviceTransformFeedbackPropertiesEXT:
    -----------------------------------------------
    	maxTransformFeedbackStreams                = 4
    	maxTransformFeedbackBuffers                = 4
    	maxTransformFeedbackBufferSize             = 0xffffffff
    	maxTransformFeedbackStreamDataSize         = 512
    	maxTransformFeedbackBufferDataSize         = 512
    	maxTransformFeedbackBufferDataStride       = 512
    	transformFeedbackQueries                   = true
    	transformFeedbackStreamsLinesTriangles     = false
    	transformFeedbackRasterizationStreamSelect = false
    	transformFeedbackDraw                      = true
    
    VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT:
    ----------------------------------------------------
    	maxVertexAttribDivisor = 4294967295
    
    
    Device Extensions: count = 46
    -----------------------------
    	VK_EXT_calibrated_timestamps          : extension revision 1
    	VK_EXT_conditional_rendering          : extension revision 2
    	VK_EXT_extended_dynamic_state         : extension revision 1
    	VK_EXT_host_query_reset               : extension revision 1
    	VK_EXT_index_type_uint8               : extension revision 1
    	VK_EXT_post_depth_coverage            : extension revision 1
    	VK_EXT_private_data                   : extension revision 1
    	VK_EXT_sampler_filter_minmax          : extension revision 2
    	VK_EXT_scalar_block_layout            : extension revision 1
    	VK_EXT_shader_stencil_export          : extension revision 1
    	VK_EXT_shader_viewport_index_layer    : extension revision 1
    	VK_EXT_transform_feedback             : extension revision 1
    	VK_EXT_vertex_attribute_divisor       : extension revision 3
    	VK_GOOGLE_decorate_string             : extension revision 1
    	VK_GOOGLE_hlsl_functionality1         : extension revision 1
    	VK_KHR_16bit_storage                  : extension revision 1
    	VK_KHR_8bit_storage                   : extension revision 1
    	VK_KHR_bind_memory2                   : extension revision 1
    	VK_KHR_buffer_device_address          : extension revision 1
    	VK_KHR_copy_commands2                 : extension revision 1
    	VK_KHR_create_renderpass2             : extension revision 1
    	VK_KHR_dedicated_allocation           : extension revision 3
    	VK_KHR_descriptor_update_template     : extension revision 1
    	VK_KHR_device_group                   : extension revision 4
    	VK_KHR_draw_indirect_count            : extension revision 1
    	VK_KHR_driver_properties              : extension revision 1
    	VK_KHR_external_fence                 : extension revision 1
    	VK_KHR_external_memory                : extension revision 1
    	VK_KHR_external_semaphore             : extension revision 1
    	VK_KHR_get_memory_requirements2       : extension revision 1
    	VK_KHR_image_format_list              : extension revision 1
    	VK_KHR_imageless_framebuffer          : extension revision 1
    	VK_KHR_incremental_present            : extension revision 1
    	VK_KHR_maintenance1                   : extension revision 2
    	VK_KHR_maintenance2                   : extension revision 1
    	VK_KHR_maintenance3                   : extension revision 1
    	VK_KHR_multiview                      : extension revision 1
    	VK_KHR_push_descriptor                : extension revision 2
    	VK_KHR_relaxed_block_layout           : extension revision 1
    	VK_KHR_sampler_mirror_clamp_to_edge   : extension revision 3
    	VK_KHR_shader_atomic_int64            : extension revision 1
    	VK_KHR_shader_draw_parameters         : extension revision 1
    	VK_KHR_storage_buffer_storage_class   : extension revision 1
    	VK_KHR_swapchain                      : extension revision 70
    	VK_KHR_uniform_buffer_standard_layout : extension revision 1
    	VK_KHR_variable_pointers              : extension revision 1
    
    VkQueueFamilyProperties:
    ========================
    	queueProperties[0]:
    	-------------------
    		minImageTransferGranularity = (1,1,1)
    		queueCount                  = 1
    		queueFlags                  = QUEUE_GRAPHICS | QUEUE_COMPUTE | QUEUE_TRANSFER
    		timestampValidBits          = 64
    		present support             = true
    
    VkPhysicalDeviceMemoryProperties:
    =================================
    memoryHeaps: count = 1
    	memoryHeaps[0]:
    		size   = 2147483648 (0x80000000) (2.00 GiB)
    		flags: count = 1
    			MEMORY_HEAP_DEVICE_LOCAL_BIT
    memoryTypes: count = 1
    	memoryTypes[0]:
    		heapIndex     = 0
    		propertyFlags = 0x000f: count = 4
    			MEMORY_PROPERTY_DEVICE_LOCAL_BIT
    			MEMORY_PROPERTY_HOST_VISIBLE_BIT
    			MEMORY_PROPERTY_HOST_COHERENT_BIT
    			MEMORY_PROPERTY_HOST_CACHED_BIT
    		usable for:
    			IMAGE_TILING_OPTIMAL:
    				color images
    				FORMAT_D16_UNORM
    				FORMAT_X8_D24_UNORM_PACK32
    				FORMAT_D32_SFLOAT
    				FORMAT_S8_UINT
    				FORMAT_D24_UNORM_S8_UINT
    				FORMAT_D32_SFLOAT_S8_UINT
    				(non-sparse)
    			IMAGE_TILING_LINEAR:
    				color images
    				(non-sparse)
    
    VkPhysicalDeviceFeatures:
    =========================
    	robustBufferAccess                      = true
    	fullDrawIndexUint32                     = true
    	imageCubeArray                          = true
    	independentBlend                        = true
    	geometryShader                          = true
    	tessellationShader                      = true
    	sampleRateShading                       = true
    	dualSrcBlend                            = true
    	logicOp                                 = true
    	multiDrawIndirect                       = true
    	drawIndirectFirstInstance               = true
    	depthClamp                              = true
    	depthBiasClamp                          = true
    	fillModeNonSolid                        = true
    	depthBounds                             = false
    	wideLines                               = false
    	largePoints                             = true
    	alphaToOne                              = true
    	multiViewport                           = true
    	samplerAnisotropy                       = false
    	textureCompressionETC2                  = false
    	textureCompressionASTC_LDR              = false
    	textureCompressionBC                    = true
    	occlusionQueryPrecise                   = true
    	pipelineStatisticsQuery                 = true
    	vertexPipelineStoresAndAtomics          = true
    	fragmentStoresAndAtomics                = true
    	shaderTessellationAndGeometryPointSize  = true
    	shaderImageGatherExtended               = true
    	shaderStorageImageExtendedFormats       = false
    	shaderStorageImageMultisample           = true
    	shaderStorageImageReadWithoutFormat     = false
    	shaderStorageImageWriteWithoutFormat    = true
    	shaderUniformBufferArrayDynamicIndexing = false
    	shaderSampledImageArrayDynamicIndexing  = false
    	shaderStorageBufferArrayDynamicIndexing = false
    	shaderStorageImageArrayDynamicIndexing  = false
    	shaderClipDistance                      = true
    	shaderCullDistance                      = true
    	shaderFloat64                           = true
    	shaderInt64                             = true
    	shaderInt16                             = false
    	shaderResourceResidency                 = false
    	shaderResourceMinLod                    = false
    	sparseBinding                           = false
    	sparseResidencyBuffer                   = false
    	sparseResidencyImage2D                  = false
    	sparseResidencyImage3D                  = false
    	sparseResidency2Samples                 = false
    	sparseResidency4Samples                 = false
    	sparseResidency8Samples                 = false
    	sparseResidency16Samples                = false
    	sparseResidencyAliased                  = false
    	variableMultisampleRate                 = false
    	inheritedQueries                        = false
    
    VkPhysicalDevice16BitStorageFeaturesKHR:
    ----------------------------------------
    	storageBuffer16BitAccess           = true
    	uniformAndStorageBuffer16BitAccess = true
    	storagePushConstant16              = true
    	storageInputOutput16               = false
    
    VkPhysicalDevice8BitStorageFeaturesKHR:
    ---------------------------------------
    	storageBuffer8BitAccess           = true
    	uniformAndStorageBuffer8BitAccess = true
    	storagePushConstant8              = true
    
    VkPhysicalDeviceBufferDeviceAddressFeaturesKHR:
    -----------------------------------------------
    	bufferDeviceAddress              = true
    	bufferDeviceAddressCaptureReplay = false
    	bufferDeviceAddressMultiDevice   = false
    
    VkPhysicalDeviceConditionalRenderingFeaturesEXT:
    ------------------------------------------------
    	conditionalRendering          = true
    	inheritedConditionalRendering = false
    
    VkPhysicalDeviceExtendedDynamicStateFeaturesEXT:
    ------------------------------------------------
    	extendedDynamicState = true
    
    VkPhysicalDeviceHostQueryResetFeaturesEXT:
    ------------------------------------------
    	hostQueryReset = true
    
    VkPhysicalDeviceImagelessFramebufferFeaturesKHR:
    ------------------------------------------------
    	imagelessFramebuffer = true
    
    VkPhysicalDeviceIndexTypeUint8FeaturesEXT:
    ------------------------------------------
    	indexTypeUint8 = true
    
    VkPhysicalDeviceMultiviewFeaturesKHR:
    -------------------------------------
    	multiview                   = true
    	multiviewGeometryShader     = true
    	multiviewTessellationShader = true
    
    VkPhysicalDevicePrivateDataFeaturesEXT:
    ---------------------------------------
    	privateData = true
    
    VkPhysicalDeviceScalarBlockLayoutFeaturesEXT:
    ---------------------------------------------
    	scalarBlockLayout = true
    
    VkPhysicalDeviceShaderAtomicInt64FeaturesKHR:
    ---------------------------------------------
    	shaderBufferInt64Atomics = true
    	shaderSharedInt64Atomics = true
    
    VkPhysicalDeviceTransformFeedbackFeaturesEXT:
    ---------------------------------------------
    	transformFeedback = true
    	geometryStreams   = true
    
    VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR:
    -------------------------------------------------------
    	uniformBufferStandardLayout = true
    
    VkPhysicalDeviceVariablePointersFeaturesKHR:
    --------------------------------------------
    	variablePointersStorageBuffer = true
    	variablePointers              = false
    
    VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT:
    --------------------------------------------------
    	vertexAttributeInstanceRateDivisor     = true
    	vertexAttributeInstanceRateZeroDivisor = false
    
    
    
    Reply
  • Relicta freezes on startup when using gamescope
    Relicta freezes on startup when using gamescope

    Dec 31, 2021

    When I launch the game using gamescope, it almost always freezes with a black screen when the logos are supposed to appear.

    I'm using the GOG version of the game: https://www.gog.com/game/relicta

    System:

    • Manjaro 21.2 KDE (5.15 kernel)
    • AMD Radeon RX 6900XT
    • Mesa 21.2.5, vulkan RADV driver
    • Wine 7.0-rc3 (lutris build from here: https://github.com/GloriousEggroll/wine-ge-custom)
    • DXVK 1.9.2

    I'm not 100% sure but I think it may have something to do with the splash screen before the game starts. It flashes very briefly, maybe gamescope is trying to grab that window at the wrong moment?

    Other UE4 games run fine.

    Edit: forgot to add the command I'm using to launch the game gamescope -f -- wine cmd.exe /c start /D "C:\\Relicta" /WAIT "PAway\\Binaries\\Win64\\Relicta-Win64-Shipping.exe"

    Reply
  • naruto shippuden ultimate ninja storm 4 doesn't scale right to 800p
    naruto shippuden ultimate ninja storm 4 doesn't scale right to 800p

    Jan 4, 2022

    Seems like the window asks for fullscreen, so we snap it to 1280x800, but it still has a child window that's 1080p and the commits we get are evidently 1080p-cropped-to-800p as opposed to real 1080p we could scale down in that case, which is not great.

    next 
    Reply
  • Support for multiple xwaylands and focus/painting across them
    Support for multiple xwaylands and focus/painting across them

    Jan 7, 2022

    Allows us to virtualize focus from the game so it never knows we're doing something different.

    Closes: https://github.com/Plagman/gamescope/issues/328

    Reply
  • rendervulkan: Only create useful pipelines.
    rendervulkan: Only create useful pipelines.

    Jan 10, 2022

    null

                                                                                                                                                                                                           
    Reply
  • Add flag to rotate the screen.
    Add flag to rotate the screen.

    Jan 12, 2022

    I'm using gamescope on ChimeraOS and its upside down on my OneXPlayer. For the default steam compositor I need to set the ROTATION=left flag in the configuration file.

    enhancement 
    Reply
  •  [bisected] `-O` option breaks embedded mode (Steam client can't start from TTY)
    [bisected] `-O` option breaks embedded mode (Steam client can't start from TTY)

    Aug 26, 2021

    Using gamescope-session running steam client from TTY as a systemd unit with this command line:

    $ /usr/bin/gamescope -e -f -- steam -tenfoot -steamos -fulldesktopres
    

    Steam client does not start and gamescope outputs this:

    No CAP_SYS_NICE, falling back to regular-priority compute and threads.
    Performance will be affected.
    00:00:00.000 [INFO] [backend/session/logind.c:572] Selecting session from XDG_SESSION_ID: c21
    00:00:00.002 [INFO] [backend/session/logind.c:706] Successfully loaded logind session
    drm: Connectors:
    drm:   DP-1 (disconnected)
    drm:   DP-2 (disconnected)
    drm:   DP-3 (disconnected)
    drm:   HDMI-A-1 (connected)
    

    And nothing more.

    Works with gamescope commit https://github.com/Plagman/gamescope/commit/8f733a415540131b3bd62501bf6767400010c049.

    Bisect log:

    $ git bisect log 
    git bisect start
    # bad: [3b14c21afc90884f7cbe8f5205cfe76af86528db] Simplify errorf_errno a bit
    git bisect bad 3b14c21afc90884f7cbe8f5205cfe76af86528db
    # good: [8f733a415540131b3bd62501bf6767400010c049] rendervulkan: add error logging to init_device
    git bisect good 8f733a415540131b3bd62501bf6767400010c049
    # bad: [a54b5c9ee010c1c87dfc4c3c0b9c2d04297d60da] Introduce basic logging module
    git bisect bad a54b5c9ee010c1c87dfc4c3c0b9c2d04297d60da
    # bad: [cba189d389c42dbeb0a18a5072def97ac89179b5] drm: allow wildcard in connector priority list
    git bisect bad cba189d389c42dbeb0a18a5072def97ac89179b5
    # bad: [51cfc0df061c83fb546dd43ffc8f386de8264810] Implement priority list for -O
    git bisect bad 51cfc0df061c83fb546dd43ffc8f386de8264810
    # first bad commit: [51cfc0df061c83fb546dd43ffc8f386de8264810] Implement priority list for -O
    
    bug next embedded 
    Reply
  • Gamescope bloats xorg.log
    Gamescope bloats xorg.log

    Jan 7, 2021

    Running Gamescope causes the xorg.log to bloat by about 300KiB per second.

    Distro is Arch Linux Kernel version is 5.10.4, custom, based on Arch vanilla config Mesa master, commit 5692e2dda5c, using some custom patches

    This is what gets constantly spammed to the log:

    [ 21777.671] (II) AMDGPU(0): EDID vendor "AUS", prod id 9634
    [ 21777.672] (II) AMDGPU(0): Using hsync ranges from config file
    [ 21777.672] (II) AMDGPU(0): Using vrefresh ranges from config file
    [ 21777.672] (II) AMDGPU(0): Printing DDC gathered Modelines:
    [ 21777.672] (II) AMDGPU(0): Modeline "1920x1080"x0.0  148.50  1920 2008 2052 2200  1080 1084 1089 1125 +hsync +vsync (67.5 kHz eP)
    [ 21777.672] (II) AMDGPU(0): Modeline "1920x1080"x0.0  198.50  1920 1968 2000 2080  1080 1083 1088 1124 +hsync -vsync (95.4 kHz e)
    [ 21777.672] (II) AMDGPU(0): Modeline "1920x1080"x0.0  235.50  1920 1968 2000 2080  1080 1083 1088 1133 +hsync -vsync (113.2 kHz e)
    [ 21777.672] (II) AMDGPU(0): Modeline "1920x1080"x0.0  285.50  1920 1968 2000 2080  1080 1083 1088 1144 +hsync -vsync (137.3 kHz e)
    [ 21777.672] (II) AMDGPU(0): Modeline "1920x1080"x0.0  325.08  1920 1944 1976 2056  1080 1083 1088 1098 +hsync +vsync (158.1 kHz e)
    [ 21777.672] (II) AMDGPU(0): Modeline "1920x1080i"x0.0   74.25  1920 2008 2052 2200  1080 1084 1094 1125 interlace +hsync +vsync (33.8 kHz e)
    [ 21777.672] (II) AMDGPU(0): Modeline "1280x720"x0.0   74.25  1280 1390 1430 1650  720 725 730 750 +hsync +vsync (45.0 kHz e)
    [ 21777.672] (II) AMDGPU(0): Modeline "720x480"x0.0   27.00  720 736 798 858  480 489 495 525 -hsync -vsync (31.5 kHz e)
    [ 21777.672] (II) AMDGPU(0): Modeline "640x480"x0.0   25.18  640 656 752 800  480 490 492 525 -hsync -vsync (31.5 kHz e)
    [ 21777.672] (II) AMDGPU(0): Modeline "720x576"x0.0   27.00  720 732 796 864  576 581 586 625 -hsync -vsync (31.2 kHz e)
    [ 21777.672] (II) AMDGPU(0): Modeline "1280x720"x0.0   74.25  1280 1720 1760 1980  720 725 730 750 +hsync +vsync (37.5 kHz e)
    [ 21777.672] (II) AMDGPU(0): Modeline "1920x1080i"x0.0   74.25  1920 2448 2492 2640  1080 1084 1094 1125 interlace +hsync +vsync (28.1 kHz e)
    [ 21777.672] (II) AMDGPU(0): Modeline "1920x1080"x0.0  148.50  1920 2448 2492 2640  1080 1084 1089 1125 +hsync +vsync (56.2 kHz e)
    [ 21777.672] (II) AMDGPU(0): Modeline "800x600"x0.0   40.00  800 840 968 1056  600 601 605 628 +hsync +vsync (37.9 kHz e)
    [ 21777.672] (II) AMDGPU(0): Modeline "800x600"x0.0   36.00  800 824 896 1024  600 601 603 625 +hsync +vsync (35.2 kHz e)
    [ 21777.672] (II) AMDGPU(0): Modeline "640x480"x0.0   31.50  640 656 720 840  480 481 484 500 -hsync -vsync (37.5 kHz e)
    [ 21777.672] (II) AMDGPU(0): Modeline "640x480"x0.0   30.24  640 704 768 864  480 483 486 525 -hsync -vsync (35.0 kHz e)
    [ 21777.672] (II) AMDGPU(0): Modeline "720x400"x0.0   28.32  720 738 846 900  400 412 414 449 -hsync +vsync (31.5 kHz e)
    [ 21777.672] (II) AMDGPU(0): Modeline "1280x1024"x0.0  135.00  1280 1296 1440 1688  1024 1025 1028 1066 +hsync +vsync (80.0 kHz e)
    [ 21777.672] (II) AMDGPU(0): Modeline "1024x768"x0.0   78.75  1024 1040 1136 1312  768 769 772 800 +hsync +vsync (60.0 kHz e)
    [ 21777.672] (II) AMDGPU(0): Modeline "1024x768"x0.0   75.00  1024 1048 1184 1328  768 771 777 806 -hsync -vsync (56.5 kHz e)
    [ 21777.672] (II) AMDGPU(0): Modeline "1024x768"x0.0   65.00  1024 1048 1184 1344  768 771 777 806 -hsync -vsync (48.4 kHz e)
    [ 21777.672] (II) AMDGPU(0): Modeline "832x624"x0.0   57.28  832 864 928 1152  624 625 628 667 -hsync -vsync (49.7 kHz e)
    [ 21777.672] (II) AMDGPU(0): Modeline "800x600"x0.0   49.50  800 816 896 1056  600 601 604 625 +hsync +vsync (46.9 kHz e)
    [ 21777.672] (II) AMDGPU(0): Modeline "800x600"x0.0   50.00  800 856 976 1040  600 637 643 666 +hsync +vsync (48.1 kHz e)
    [ 21777.672] (II) AMDGPU(0): Modeline "1152x864"x0.0  108.00  1152 1216 1344 1600  864 865 868 900 +hsync +vsync (67.5 kHz e)
    [ 21777.672] (II) AMDGPU(0): Modeline "1280x1024"x0.0  108.00  1280 1328 1440 1688  1024 1025 1028 1066 +hsync +vsync (64.0 kHz e)
    [ 21777.672] (II) AMDGPU(0): Modeline "1280x960"x0.0  108.00  1280 1376 1488 1800  960 961 964 1000 +hsync +vsync (60.0 kHz e)
    [ 21777.672] (II) AMDGPU(0): Modeline "1280x800"x0.0   83.50  1280 1352 1480 1680  800 803 809 831 -hsync +vsync (49.7 kHz e)
    [ 21777.672] (II) AMDGPU(0): Modeline "1440x900"x0.0  106.50  1440 1520 1672 1904  900 903 909 934 -hsync +vsync (55.9 kHz e)
    [ 21777.672] (II) AMDGPU(0): Modeline "1680x1050"x0.0  146.25  1680 1784 1960 2240  1050 1053 1059 1089 -hsync +vsync (65.3 kHz e)
    
    Reply
  • Freeze on SIGSTOP/SIGCONT
    Freeze on SIGSTOP/SIGCONT

    Jul 23, 2020

    1. Run Sekiro in gamescope
    2. pkill -STOP gamescope
    3. pkill -CONT gamescope
    4. One single new frame is displayed, but gamescope freezes right after

    Doesn't happen with some other games (e.g. Portal 2).

    gamescope backtrace when frozen:

    (gdb) thread apply all bt
    
    Thread 41 (Thread 0x7f2c3f267700 (LWP 10104)):
    #0  0x00007f2cec6c6158 in [email protected]@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0
    #1  0x00007f2c842c71a2 in wsi_queue_pull (timeout=9223372036854775807, index=<synthetic pointer>, queue=0x7f2c4cdd5538) at ../src/vulkan/wsi/wsi_common_queue.h:132
    #2  x11_manage_fifo_queues (state=<optimized out>) at ../src/vulkan/wsi/wsi_common_x11.c:1130
    #3  x11_manage_fifo_queues (state=0x7f2c4cdd5440) at ../src/vulkan/wsi/wsi_common_x11.c:1116
    #4  0x00007f2cec6bf422 in start_thread () at /usr/lib/libpthread.so.0
    #5  0x00007f2cec5eebf3 in clone () at /usr/lib/libc.so.6
    
    Thread 40 (Thread 0x7f2c3e201700 (LWP 9740)):
    #0  0x00007f2cec5bbc3f in wait4 () at /usr/lib/libc.so.6
    #1  0x0000563e8b99961e in operator()() const (__closure=0x7f2c4cdf0b98) at ../src/steamcompmgr.cpp:2319
    #2  0x0000563e8b99b7ec in std::__invoke_impl<void, steamcompmgr_main(int, char**)::<lambda()> >(std::__invoke_other, struct {...} &&) (__f=...) at /usr/include/c++/10.1.0/bits/invoke.h:60
    #3  0x0000563e8b99b7a1 in std::__invoke<steamcompmgr_main(int, char**)::<lambda()> >(struct {...} &&) (__fn=...) at /usr/include/c++/10.1.0/bits/invoke.h:95
    #4  0x0000563e8b99b74e in std::thread::_Invoker<std::tuple<steamcompmgr_main(int, char**)::<lambda()> > >::_M_invoke<0>(std::_Index_tuple<0>) (this=0x7f2c4cdf0b98) at /usr/include/c++/10.1.0/thread:264
    #5  0x0000563e8b99b722 in std::thread::_Invoker<std::tuple<steamcompmgr_main(int, char**)::<lambda()> > >::operator()(void) (this=0x7f2c4cdf0b98) at /usr/include/c++/10.1.0/thread:271
    #6  0x0000563e8b99b706 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<steamcompmgr_main(int, char**)::<lambda()> > > >::_M_run(void) (this=0x7f2c4cdf0b90) at /usr/include/c++/10.1.0/thread:215
    #7  0x00007f2cec908b74 in std::execute_native_thread_routine(void*) (__p=0x7f2c4cdf0b90) at /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:80
    #8  0x00007f2cec6bf422 in start_thread () at /usr/lib/libpthread.so.0
    #9  0x00007f2cec5eebf3 in clone () at /usr/lib/libc.so.6
    
    Thread 39 (Thread 0x7f2c60ff9700 (LWP 9735)):
    #0  0x00007f2cec6c5e32 in [email protected]@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0
    #1  0x00007f2c842d7d93 in cnd_wait (mtx=0x7f2c4c19fd98, cond=0x7f2c4c19fdc0) at ../include/c11/threads_posix.h:155
    #2  util_queue_thread_func ([email protected]=0x7f2c4c019a00) at ../src/util/u_queue.c:289
    #3  0x00007f2c842d79a7 in impl_thrd_routine (p=<optimized out>) at ../include/c11/threads_posix.h:87
    #4  0x00007f2cec6bf422 in start_thread () at /usr/lib/libpthread.so.0
    #5  0x00007f2cec5eebf3 in clone () at /usr/lib/libc.so.6
    
    Thread 38 (Thread 0x7f2c627fc700 (LWP 9731)):
    #0  0x00007f2cec5e405f in poll () at /usr/lib/libc.so.6
    #1  0x00007f2cecb6563b in  () at /usr/lib/libxcb.so.1
    #2  0x00007f2cecb6737b in xcb_wait_for_event () at /usr/lib/libxcb.so.1
    #3  0x00007f2cecf8d169 in _XReadEvents () at /usr/lib/libX11.so.6
    #4  0x00007f2cecf7bd89 in XNextEvent () at /usr/lib/libX11.so.6
    #5  0x0000563e8b99a2e3 in steamcompmgr_main(int, char**) (argc=6, argv=0x7fff68712248) at ../src/steamcompmgr.cpp:2339
    #6  0x0000563e8b9a67a6 in steamCompMgrThreadRun() () at ../src/main.cpp:124
    #7  0x0000563e8b9a6506 in std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) ([email protected]: 0x563e8b9a678b <steamCompMgrThreadRun()>) at /usr/include/c++/10.1.0/bits/invoke.h:60
    #8  0x0000563e8b9a64a1 in std::__invoke<void (*)()>(void (*&&)()) ([email protected]: 0x563e8b9a678b <steamCompMgrThreadRun()>) at /usr/include/c++/10.1.0/bits/invoke.h:95
    #9  0x0000563e8b9a6428 in std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) (this=0x563e8c200378) at /usr/include/c++/10.1.0/thread:264
    #10 0x0000563e8b9a63c4 in std::thread::_Invoker<std::tuple<void (*)()> >::operator()() (this=0x563e8c200378) at /usr/include/c++/10.1.0/thread:271
    #11 0x0000563e8b9a6254 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() (this=0x563e8c200370) at /usr/include/c++/10.1.0/thread:215
    --Type <RET> for more, q to quit, c to continue without paging--
    #12 0x00007f2cec908b74 in std::execute_native_thread_routine(void*) (__p=0x563e8c200370) at /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:80
    #13 0x00007f2cec6bf422 in start_thread () at /usr/lib/libpthread.so.0
    #14 0x00007f2cec5eebf3 in clone () at /usr/lib/libc.so.6
    
    Thread 37 (Thread 0x7f2c877fe700 (LWP 9687)):
    #0  0x00007f2cec6c5e32 in [email protected]@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0
    #1  0x00007f2ceb6898d3 in cnd_wait (mtx=0x7f2c90081be8, cond=0x7f2c90081c10) at ../include/c11/threads_posix.h:155
    #2  util_queue_thread_func ([email protected]=0x7f2c90080c60) at ../src/util/u_queue.c:289
    #3  0x00007f2ceb6894e7 in impl_thrd_routine (p=<optimized out>) at ../include/c11/threads_posix.h:87
    #4  0x00007f2cec6bf422 in start_thread () at /usr/lib/libpthread.so.0
    #5  0x00007f2cec5eebf3 in clone () at /usr/lib/libc.so.6
    
    Thread 36 (Thread 0x7f2c61ffb700 (LWP 9733)):
    #0  0x00007f2cec6c5e32 in [email protected]@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0
    #1  0x00007f2c842d7d93 in cnd_wait (mtx=0x7f2c4c19fd98, cond=0x7f2c4c19fdc0) at ../include/c11/threads_posix.h:155
    #2  util_queue_thread_func ([email protected]=0x7f2c4c013c70) at ../src/util/u_queue.c:289
    #3  0x00007f2c842d79a7 in impl_thrd_routine (p=<optimized out>) at ../include/c11/threads_posix.h:87
    #4  0x00007f2cec6bf422 in start_thread () at /usr/lib/libpthread.so.0
    #5  0x00007f2cec5eebf3 in clone () at /usr/lib/libc.so.6
    
    Thread 35 (Thread 0x7f2c637fe700 (LWP 9694)):
    #0  0x00007f2cec6c5e32 in [email protected]@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0
    #1  0x00007f2ceb6898d3 in cnd_wait (mtx=0x7f2c900822f0, cond=0x7f2c90082318) at ../include/c11/threads_posix.h:155
    #2  util_queue_thread_func ([email protected]=0x7f2c90085ce0) at ../src/util/u_queue.c:289
    #3  0x00007f2ceb6894e7 in impl_thrd_routine (p=<optimized out>) at ../include/c11/threads_posix.h:87
    #4  0x00007f2cec6bf422 in start_thread () at /usr/lib/libpthread.so.0
    #5  0x00007f2cec5eebf3 in clone () at /usr/lib/libc.so.6
    
    Thread 34 (Thread 0x7f2c63fff700 (LWP 9693)):
    #0  0x00007f2cec6c5e32 in [email protected]@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0
    #1  0x00007f2ceb6898d3 in cnd_wait (mtx=0x7f2c900822f0, cond=0x7f2c90082318) at ../include/c11/threads_posix.h:155
    #2  util_queue_thread_func ([email protected]=0x7f2c9001f250) at ../src/util/u_queue.c:289
    #3  0x00007f2ceb6894e7 in impl_thrd_routine (p=<optimized out>) at ../include/c11/threads_posix.h:87
    #4  0x00007f2cec6bf422 in start_thread () at /usr/lib/libpthread.so.0
    #5  0x00007f2cec5eebf3 in clone () at /usr/lib/libc.so.6
    
    Thread 33 (Thread 0x7f2c84ff9700 (LWP 9692)):
    #0  0x00007f2cec6c5e32 in [email protected]@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0
    #1  0x00007f2ceb6898d3 in cnd_wait (mtx=0x7f2c900822f0, cond=0x7f2c90082318) at ../include/c11/threads_posix.h:155
    #2  util_queue_thread_func ([email protected]=0x7f2c9001f210) at ../src/util/u_queue.c:289
    #3  0x00007f2ceb6894e7 in impl_thrd_routine (p=<optimized out>) at ../include/c11/threads_posix.h:87
    #4  0x00007f2cec6bf422 in start_thread () at /usr/lib/libpthread.so.0
    #5  0x00007f2cec5eebf3 in clone () at /usr/lib/libc.so.6
    
    Thread 32 (Thread 0x7f2c85ffb700 (LWP 9690)):
    #0  0x00007f2cec6c5e32 in [email protected]@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0
    #1  0x00007f2ceb6898d3 in cnd_wait (mtx=0x7f2c90081be8, cond=0x7f2c90081c10) at ../include/c11/threads_posix.h:155
    --Type <RET> for more, q to quit, c to continue without paging--
    #2  util_queue_thread_func ([email protected]=0x7f2c900847c0) at ../src/util/u_queue.c:289
    #3  0x00007f2ceb6894e7 in impl_thrd_routine (p=<optimized out>) at ../include/c11/threads_posix.h:87
    #4  0x00007f2cec6bf422 in start_thread () at /usr/lib/libpthread.so.0
    #5  0x00007f2cec5eebf3 in clone () at /usr/lib/libc.so.6
    
    Thread 31 (Thread 0x7f2c9ce26700 (LWP 9685)):
    #0  0x00007f2cec6c5e32 in [email protected]@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0
    #1  0x00007f2ceb6898d3 in cnd_wait (mtx=0x7f2c90082788, cond=0x7f2c900827b0) at ../include/c11/threads_posix.h:155
    #2  util_queue_thread_func ([email protected]=0x7f2c90081220) at ../src/util/u_queue.c:289
    #3  0x00007f2ceb6894e7 in impl_thrd_routine (p=<optimized out>) at ../include/c11/threads_posix.h:87
    #4  0x00007f2cec6bf422 in start_thread () at /usr/lib/libpthread.so.0
    #5  0x00007f2cec5eebf3 in clone () at /usr/lib/libc.so.6
    
    Thread 30 (Thread 0x7f2c87fff700 (LWP 9686)):
    #0  0x00007f2cec6c5e32 in [email protected]@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0
    #1  0x00007f2ceb6898d3 in cnd_wait (mtx=0x7f2c90081be8, cond=0x7f2c90081c10) at ../include/c11/threads_posix.h:155
    #2  util_queue_thread_func ([email protected]=0x7f2c90081000) at ../src/util/u_queue.c:289
    #3  0x00007f2ceb6894e7 in impl_thrd_routine (p=<optimized out>) at ../include/c11/threads_posix.h:87
    #4  0x00007f2cec6bf422 in start_thread () at /usr/lib/libpthread.so.0
    #5  0x00007f2cec5eebf3 in clone () at /usr/lib/libc.so.6
    
    Thread 29 (Thread 0x7f2c9d627700 (LWP 9684)):
    #0  0x00007f2cec6c5e32 in [email protected]@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0
    #1  0x00007f2ceb6898d3 in cnd_wait (mtx=0x7f2c90082788, cond=0x7f2c900827b0) at ../include/c11/threads_posix.h:155
    #2  util_queue_thread_func ([email protected]=0x7f2c90081040) at ../src/util/u_queue.c:289
    #3  0x00007f2ceb6894e7 in impl_thrd_routine (p=<optimized out>) at ../include/c11/threads_posix.h:87
    #4  0x00007f2cec6bf422 in start_thread () at /usr/lib/libpthread.so.0
    #5  0x00007f2cec5eebf3 in clone () at /usr/lib/libc.so.6
    
    Thread 28 (Thread 0x7f2c9de28700 (LWP 9683)):
    #0  0x00007f2cec6c5e32 in [email protected]@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0
    #1  0x00007f2ceb6898d3 in cnd_wait (mtx=0x7f2c90082788, cond=0x7f2c900827b0) at ../include/c11/threads_posix.h:155
    #2  util_queue_thread_func ([email protected]=0x7f2c90080b00) at ../src/util/u_queue.c:289
    #3  0x00007f2ceb6894e7 in impl_thrd_routine (p=<optimized out>) at ../include/c11/threads_posix.h:87
    #4  0x00007f2cec6bf422 in start_thread () at /usr/lib/libpthread.so.0
    #5  0x00007f2cec5eebf3 in clone () at /usr/lib/libc.so.6
    
    Thread 27 (Thread 0x7f2c4bfff700 (LWP 9736)):
    #0  0x00007f2cec6c5e32 in [email protected]@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0
    #1  0x00007f2c842d7d93 in cnd_wait (mtx=0x7f2c4c19fd98, cond=0x7f2c4c19fdc0) at ../include/c11/threads_posix.h:155
    #2  util_queue_thread_func ([email protected]=0x7f2c4c196d50) at ../src/util/u_queue.c:289
    #3  0x00007f2c842d79a7 in impl_thrd_routine (p=<optimized out>) at ../include/c11/threads_posix.h:87
    #4  0x00007f2cec6bf422 in start_thread () at /usr/lib/libpthread.so.0
    #5  0x00007f2cec5eebf3 in clone () at /usr/lib/libc.so.6
    
    Thread 26 (Thread 0x7f2c62ffd700 (LWP 9695)):
    #0  0x00007f2cec6c5e32 in [email protected]@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0
    --Type <RET> for more, q to quit, c to continue without paging--
    #1  0x00007f2ceb6898d3 in cnd_wait (mtx=0x7f2c900822f0, cond=0x7f2c90082318) at ../include/c11/threads_posix.h:155
    #2  util_queue_thread_func ([email protected]=0x7f2c90085ef0) at ../src/util/u_queue.c:289
    #3  0x00007f2ceb6894e7 in impl_thrd_routine (p=<optimized out>) at ../include/c11/threads_posix.h:87
    #4  0x00007f2cec6bf422 in start_thread () at /usr/lib/libpthread.so.0
    #5  0x00007f2cec5eebf3 in clone () at /usr/lib/libc.so.6
    
    Thread 25 (Thread 0x7f2c9f7fe700 (LWP 9663)):
    #0  0x00007f2cec6c5e32 in [email protected]@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0
    #1  0x00007f2ceb6898d3 in cnd_wait (mtx=0x563e8bc5c9b0, cond=0x563e8bc5c9d8) at ../include/c11/threads_posix.h:155
    #2  util_queue_thread_func ([email protected]=0x563e8bbf38b0) at ../src/util/u_queue.c:289
    #3  0x00007f2ceb6894e7 in impl_thrd_routine (p=<optimized out>) at ../include/c11/threads_posix.h:87
    #4  0x00007f2cec6bf422 in start_thread () at /usr/lib/libpthread.so.0
    #5  0x00007f2cec5eebf3 in clone () at /usr/lib/libc.so.6
    
    Thread 24 (Thread 0x7f2c867fc700 (LWP 9689)):
    #0  0x00007f2cec6c5e32 in [email protected]@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0
    #1  0x00007f2ceb6898d3 in cnd_wait (mtx=0x7f2c90081be8, cond=0x7f2c90081c10) at ../include/c11/threads_posix.h:155
    #2  util_queue_thread_func ([email protected]=0x7f2c900845b0) at ../src/util/u_queue.c:289
    #3  0x00007f2ceb6894e7 in impl_thrd_routine (p=<optimized out>) at ../include/c11/threads_posix.h:87
    #4  0x00007f2cec6bf422 in start_thread () at /usr/lib/libpthread.so.0
    #5  0x00007f2cec5eebf3 in clone () at /usr/lib/libc.so.6
    
    Thread 23 (Thread 0x7f2c857fa700 (LWP 9691)):
    #0  0x00007f2cec6c5e32 in [email protected]@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0
    #1  0x00007f2ceb6898d3 in cnd_wait (mtx=0x7f2c90081be8, cond=0x7f2c90081c10) at ../include/c11/threads_posix.h:155
    #2  util_queue_thread_func ([email protected]=0x7f2c900849d0) at ../src/util/u_queue.c:289
    #3  0x00007f2ceb6894e7 in impl_thrd_routine (p=<optimized out>) at ../include/c11/threads_posix.h:87
    #4  0x00007f2cec6bf422 in start_thread () at /usr/lib/libpthread.so.0
    #5  0x00007f2cec5eebf3 in clone () at /usr/lib/libc.so.6
    
    Thread 22 (Thread 0x7f2cc8ff9700 (LWP 9661)):
    #0  0x00007f2cec6c5e32 in [email protected]@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0
    #1  0x00007f2ceb6898d3 in cnd_wait (mtx=0x563e8bb93740, cond=0x563e8bb93768) at ../include/c11/threads_posix.h:155
    #2  util_queue_thread_func ([email protected]=0x563e8bb9faf0) at ../src/util/u_queue.c:289
    #3  0x00007f2ceb6894e7 in impl_thrd_routine (p=<optimized out>) at ../include/c11/threads_posix.h:87
    #4  0x00007f2cec6bf422 in start_thread () at /usr/lib/libpthread.so.0
    #5  0x00007f2cec5eebf3 in clone () at /usr/lib/libc.so.6
    
    Thread 21 (Thread 0x7f2c9ffff700 (LWP 9662)):
    #0  0x00007f2cec6c5e32 in [email protected]@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0
    #1  0x00007f2ceb6898d3 in cnd_wait (mtx=0x563e8bb93740, cond=0x563e8bb93768) at ../include/c11/threads_posix.h:155
    #2  util_queue_thread_func ([email protected]=0x563e8bb9fcf0) at ../src/util/u_queue.c:289
    #3  0x00007f2ceb6894e7 in impl_thrd_routine (p=<optimized out>) at ../include/c11/threads_posix.h:87
    #4  0x00007f2cec6bf422 in start_thread () at /usr/lib/libpthread.so.0
    #5  0x00007f2cec5eebf3 in clone () at /usr/lib/libc.so.6
    
    Thread 20 (Thread 0x7f2c9effd700 (LWP 9666)):
    --Type <RET> for more, q to quit, c to continue without paging--
    #0  0x00007f2cec5b6571 in [email protected]_2.2.5 () at /usr/lib/libc.so.6
    #1  0x00007f2cec5bbe87 in nanosleep () at /usr/lib/libc.so.6
    #2  0x00007f2cecd42e4c in  () at /usr/lib/libSDL2-2.0.so.0
    #3  0x00007f2cecc757e7 in  () at /usr/lib/libSDL2-2.0.so.0
    #4  0x0000563e8b9b10aa in inputSDLThreadRun() () at ../src/inputsdl.cpp:365
    #5  0x0000563e8b9a6506 in std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) ([email protected]: 0x563e8b9b1022 <inputSDLThreadRun()>) at /usr/include/c++/10.1.0/bits/invoke.h:60
    #6  0x0000563e8b9a64a1 in std::__invoke<void (*)()>(void (*&&)()) ([email protected]: 0x563e8b9b1022 <inputSDLThreadRun()>) at /usr/include/c++/10.1.0/bits/invoke.h:95
    #7  0x0000563e8b9a6428 in std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) (this=0x563e8c220408) at /usr/include/c++/10.1.0/thread:264
    #8  0x0000563e8b9a63c4 in std::thread::_Invoker<std::tuple<void (*)()> >::operator()() (this=0x563e8c220408) at /usr/include/c++/10.1.0/thread:271
    #9  0x0000563e8b9a6254 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() (this=0x563e8c220400) at /usr/include/c++/10.1.0/thread:215
    #10 0x00007f2cec908b74 in std::execute_native_thread_routine(void*) (__p=0x563e8c220400) at /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:80
    #11 0x00007f2cec6bf422 in start_thread () at /usr/lib/libpthread.so.0
    #12 0x00007f2cec5eebf3 in clone () at /usr/lib/libc.so.6
    
    Thread 19 (Thread 0x7f2ce3454700 (LWP 9649)):
    #0  0x00007f2cec6c5e32 in [email protected]@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0
    #1  0x00007f2ceb6898d3 in cnd_wait (mtx=0x563e8bb93c58, cond=0x563e8bb93c80) at ../include/c11/threads_posix.h:155
    #2  util_queue_thread_func ([email protected]=0x563e8bb9d2a0) at ../src/util/u_queue.c:289
    #3  0x00007f2ceb6894e7 in impl_thrd_routine (p=<optimized out>) at ../include/c11/threads_posix.h:87
    #4  0x00007f2cec6bf422 in start_thread () at /usr/lib/libpthread.so.0
    #5  0x00007f2cec5eebf3 in clone () at /usr/lib/libc.so.6
    
    Thread 18 (Thread 0x7f2cca7fc700 (LWP 9658)):
    #0  0x00007f2cec6c5e32 in [email protected]@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0
    #1  0x00007f2ceb6898d3 in cnd_wait (mtx=0x563e8bb93038, cond=0x563e8bb93060) at ../include/c11/threads_posix.h:155
    #2  util_queue_thread_func ([email protected]=0x563e8bb9eab0) at ../src/util/u_queue.c:289
    #3  0x00007f2ceb6894e7 in impl_thrd_routine (p=<optimized out>) at ../include/c11/threads_posix.h:87
    #4  0x00007f2cec6bf422 in start_thread () at /usr/lib/libpthread.so.0
    #5  0x00007f2cec5eebf3 in clone () at /usr/lib/libc.so.6
    
    Thread 17 (Thread 0x7f2c617fa700 (LWP 9734)):
    #0  0x00007f2cec6c5e32 in [email protected]@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0
    #1  0x00007f2c842d7d93 in cnd_wait (mtx=0x7f2c4c19fd98, cond=0x7f2c4c19fdc0) at ../include/c11/threads_posix.h:155
    #2  util_queue_thread_func ([email protected]=0x7f2c4c019810) at ../src/util/u_queue.c:289
    #3  0x00007f2c842d79a7 in impl_thrd_routine (p=<optimized out>) at ../include/c11/threads_posix.h:87
    #4  0x00007f2cec6bf422 in start_thread () at /usr/lib/libpthread.so.0
    #5  0x00007f2cec5eebf3 in clone () at /usr/lib/libc.so.6
    
    Thread 16 (Thread 0x7f2cc97fa700 (LWP 9660)):
    #0  0x00007f2cec6c5e32 in [email protected]@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0
    #1  0x00007f2ceb6898d3 in cnd_wait (mtx=0x563e8bb93740, cond=0x563e8bb93768) at ../include/c11/threads_posix.h:155
    #2  util_queue_thread_func ([email protected]=0x563e8bb9f8f0) at ../src/util/u_queue.c:289
    #3  0x00007f2ceb6894e7 in impl_thrd_routine (p=<optimized out>) at ../include/c11/threads_posix.h:87
    #4  0x00007f2cec6bf422 in start_thread () at /usr/lib/libpthread.so.0
    #5  0x00007f2cec5eebf3 in clone () at /usr/lib/libc.so.6
    
    --Type <RET> for more, q to quit, c to continue without paging--
    Thread 15 (Thread 0x7f2cc9ffb700 (LWP 9659)):
    #0  0x00007f2cec6c5e32 in [email protected]@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0
    #1  0x00007f2ceb6898d3 in cnd_wait (mtx=0x563e8bb93740, cond=0x563e8bb93768) at ../include/c11/threads_posix.h:155
    #2  util_queue_thread_func ([email protected]=0x563e8bb9f6f0) at ../src/util/u_queue.c:289
    #3  0x00007f2ceb6894e7 in impl_thrd_routine (p=<optimized out>) at ../include/c11/threads_posix.h:87
    #4  0x00007f2cec6bf422 in start_thread () at /usr/lib/libpthread.so.0
    #5  0x00007f2cec5eebf3 in clone () at /usr/lib/libc.so.6
    
    Thread 14 (Thread 0x7f2c9e629700 (LWP 9682)):
    #0  0x00007f2cec6c5e32 in [email protected]@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0
    #1  0x00007f2ceb6898d3 in cnd_wait (mtx=0x7f2c90082788, cond=0x7f2c900827b0) at ../include/c11/threads_posix.h:155
    #2  util_queue_thread_func ([email protected]=0x7f2c90080a60) at ../src/util/u_queue.c:289
    #3  0x00007f2ceb6894e7 in impl_thrd_routine (p=<optimized out>) at ../include/c11/threads_posix.h:87
    #4  0x00007f2cec6bf422 in start_thread () at /usr/lib/libpthread.so.0
    #5  0x00007f2cec5eebf3 in clone () at /usr/lib/libc.so.6
    
    Thread 13 (Thread 0x7f2ce0c4f700 (LWP 9654)):
    #0  0x00007f2cec6c5e32 in [email protected]@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0
    #1  0x00007f2ceb6898d3 in cnd_wait (mtx=0x563e8bb93038, cond=0x563e8bb93060) at ../include/c11/threads_posix.h:155
    #2  util_queue_thread_func ([email protected]=0x563e8bb93fd0) at ../src/util/u_queue.c:289
    #3  0x00007f2ceb6894e7 in impl_thrd_routine (p=<optimized out>) at ../include/c11/threads_posix.h:87
    #4  0x00007f2cec6bf422 in start_thread () at /usr/lib/libpthread.so.0
    #5  0x00007f2cec5eebf3 in clone () at /usr/lib/libc.so.6
    
    Thread 12 (Thread 0x7f2c3da00700 (LWP 9741)):
    #0  0x00007f2cec6c5e32 in [email protected]@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0
    #1  0x00007f2cec902c01 in __gthread_cond_wait (__mutex=<optimized out>, __cond=<optimized out>) at /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:865
    #2  std::condition_variable::wait(std::unique_lock<std::mutex>&) (this=<optimized out>, __lock=...) at /build/gcc/src/gcc/libstdc++-v3/src/c++11/condition_variable.cc:53
    #3  0x0000563e8b99bd9c in sem::wait() (this=0x563e8ba355e0 <waitListSem>) at ../src/steamcompmgr.cpp:244
    #4  0x0000563e8b99412a in imageWaitThreadRun() () at ../src/steamcompmgr.cpp:269
    #5  0x0000563e8b9a6506 in std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) ([email protected]: 0x563e8b994104 <imageWaitThreadRun()>) at /usr/include/c++/10.1.0/bits/invoke.h:60
    #6  0x0000563e8b9a64a1 in std::__invoke<void (*)()>(void (*&&)()) ([email protected]: 0x563e8b994104 <imageWaitThreadRun()>) at /usr/include/c++/10.1.0/bits/invoke.h:95
    #7  0x0000563e8b9a6428 in std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) (this=0x7f2c4cdf0b38) at /usr/include/c++/10.1.0/thread:264
    #8  0x0000563e8b9a63c4 in std::thread::_Invoker<std::tuple<void (*)()> >::operator()() (this=0x7f2c4cdf0b38) at /usr/include/c++/10.1.0/thread:271
    #9  0x0000563e8b9a6254 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() (this=0x7f2c4cdf0b30) at /usr/include/c++/10.1.0/thread:215
    #10 0x00007f2cec908b74 in std::execute_native_thread_routine(void*) (__p=0x7f2c4cdf0b30) at /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:80
    #11 0x00007f2cec6bf422 in start_thread () at /usr/lib/libpthread.so.0
    #12 0x00007f2cec5eebf3 in clone () at /usr/lib/libc.so.6
    
    Thread 11 (Thread 0x7f2ccaffd700 (LWP 9657)):
    #0  0x00007f2cec6c5e32 in [email protected]@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0
    #1  0x00007f2ceb6898d3 in cnd_wait (mtx=0x563e8bb93038, cond=0x563e8bb93060) at ../include/c11/threads_posix.h:155
    #2  util_queue_thread_func ([email protected]=0x563e8bb9e8b0) at ../src/util/u_queue.c:289
    #3  0x00007f2ceb6894e7 in impl_thrd_routine (p=<optimized out>) at ../include/c11/threads_posix.h:87
    #4  0x00007f2cec6bf422 in start_thread () at /usr/lib/libpthread.so.0
    --Type <RET> for more, q to quit, c to continue without paging--
    #5  0x00007f2cec5eebf3 in clone () at /usr/lib/libc.so.6
    
    Thread 10 (Thread 0x7f2ccb7fe700 (LWP 9656)):
    #0  0x00007f2cec6c5e32 in [email protected]@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0
    #1  0x00007f2ceb6898d3 in cnd_wait (mtx=0x563e8bb93038, cond=0x563e8bb93060) at ../include/c11/threads_posix.h:155
    #2  util_queue_thread_func ([email protected]=0x563e8bb9e6b0) at ../src/util/u_queue.c:289
    #3  0x00007f2ceb6894e7 in impl_thrd_routine (p=<optimized out>) at ../include/c11/threads_posix.h:87
    #4  0x00007f2cec6bf422 in start_thread () at /usr/lib/libpthread.so.0
    #5  0x00007f2cec5eebf3 in clone () at /usr/lib/libc.so.6
    
    Thread 9 (Thread 0x7f2ccbfff700 (LWP 9655)):
    #0  0x00007f2cec6c5e32 in [email protected]@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0
    #1  0x00007f2ceb6898d3 in cnd_wait (mtx=0x563e8bb93038, cond=0x563e8bb93060) at ../include/c11/threads_posix.h:155
    #2  util_queue_thread_func ([email protected]=0x563e8bb9e4b0) at ../src/util/u_queue.c:289
    #3  0x00007f2ceb6894e7 in impl_thrd_routine (p=<optimized out>) at ../include/c11/threads_posix.h:87
    #4  0x00007f2cec6bf422 in start_thread () at /usr/lib/libpthread.so.0
    #5  0x00007f2cec5eebf3 in clone () at /usr/lib/libc.so.6
    
    Thread 8 (Thread 0x7f2c3ea02700 (LWP 9738)):
    #0  0x00007f2cec5b6571 in [email protected]_2.2.5 () at /usr/lib/libc.so.6
    #1  0x00007f2cec5bbe87 in nanosleep () at /usr/lib/libc.so.6
    #2  0x0000563e8b9b209e in std::this_thread::sleep_for<long, std::ratio<1l, 1000000000l> >(std::chrono::duration<long, std::ratio<1l, 1000000000l> > const&) (__rtime=...) at /usr/include/c++/10.1.0/thread:405
    #3  0x0000563e8b9b1b57 in std::this_thread::sleep_until<std::chrono::_V2::system_clock, std::chrono::duration<long, std::ratio<1l, 1000000000l> > >(std::chrono::time_point<std::chrono::_V2::system_clock, std::chrono::duration<long, std::ratio<1l, 1000000000l> > > const&) (__atime=...) at /usr/include/c++/10.1.0/thread:429
    #4  0x0000563e8b9b151c in vblankThreadRun() () at ../src/vblankmanager.cpp:48
    #5  0x0000563e8b9a6506 in std::__invoke_impl<void, void (*)()>(std::__invoke_other, void (*&&)()) ([email protected]: 0x563e8b9b13b1 <vblankThreadRun()>) at /usr/include/c++/10.1.0/bits/invoke.h:60
    #6  0x0000563e8b9a64a1 in std::__invoke<void (*)()>(void (*&&)()) ([email protected]: 0x563e8b9b13b1 <vblankThreadRun()>) at /usr/include/c++/10.1.0/bits/invoke.h:95
    #7  0x0000563e8b9a6428 in std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) (this=0x7f2c4cdf08f8) at /usr/include/c++/10.1.0/thread:264
    #8  0x0000563e8b9a63c4 in std::thread::_Invoker<std::tuple<void (*)()> >::operator()() (this=0x7f2c4cdf08f8) at /usr/include/c++/10.1.0/thread:271
    #9  0x0000563e8b9a6254 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run() (this=0x7f2c4cdf08f0) at /usr/include/c++/10.1.0/thread:215
    #10 0x00007f2cec908b74 in std::execute_native_thread_routine(void*) (__p=0x7f2c4cdf08f0) at /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:80
    #11 0x00007f2cec6bf422 in start_thread () at /usr/lib/libpthread.so.0
    #12 0x00007f2cec5eebf3 in clone () at /usr/lib/libc.so.6
    
    Thread 7 (Thread 0x7f2c86ffd700 (LWP 9688)):
    #0  0x00007f2cec6c5e32 in [email protected]@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0
    #1  0x00007f2ceb6898d3 in cnd_wait (mtx=0x7f2c90081be8, cond=0x7f2c90081c10) at ../include/c11/threads_posix.h:155
    #2  util_queue_thread_func ([email protected]=0x7f2c900812e0) at ../src/util/u_queue.c:289
    #3  0x00007f2ceb6894e7 in impl_thrd_routine (p=<optimized out>) at ../include/c11/threads_posix.h:87
    #4  0x00007f2cec6bf422 in start_thread () at /usr/lib/libpthread.so.0
    #5  0x00007f2cec5eebf3 in clone () at /usr/lib/libc.so.6
    
    Thread 6 (Thread 0x7f2ce3daa700 (LWP 9648)):
    #0  0x00007f2cec6c5e32 in [email protected]@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0
    #1  0x00007f2ceb6898d3 in cnd_wait (mtx=0x563e8bb91880, cond=0x563e8bb918a8) at ../include/c11/threads_posix.h:155
    --Type <RET> for more, q to quit, c to continue without paging--
    #2  util_queue_thread_func ([email protected]=0x563e8bb8ffe0) at ../src/util/u_queue.c:289
    #3  0x00007f2ceb6894e7 in impl_thrd_routine (p=<optimized out>) at ../include/c11/threads_posix.h:87
    #4  0x00007f2cec6bf422 in start_thread () at /usr/lib/libpthread.so.0
    #5  0x00007f2cec5eebf3 in clone () at /usr/lib/libc.so.6
    
    Thread 5 (Thread 0x7f2ce2c53700 (LWP 9650)):
    #0  0x00007f2cec6c5e32 in [email protected]@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0
    #1  0x00007f2ceb6898d3 in cnd_wait (mtx=0x563e8bb93c58, cond=0x563e8bb93c80) at ../include/c11/threads_posix.h:155
    #2  util_queue_thread_func ([email protected]=0x563e8bb9d4a0) at ../src/util/u_queue.c:289
    #3  0x00007f2ceb6894e7 in impl_thrd_routine (p=<optimized out>) at ../include/c11/threads_posix.h:87
    #4  0x00007f2cec6bf422 in start_thread () at /usr/lib/libpthread.so.0
    #5  0x00007f2cec5eebf3 in clone () at /usr/lib/libc.so.6
    
    Thread 4 (Thread 0x7f2ce1450700 (LWP 9653)):
    #0  0x00007f2cec6c5e32 in [email protected]@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0
    #1  0x00007f2ceb6898d3 in cnd_wait (mtx=0x563e8bb93038, cond=0x563e8bb93060) at ../include/c11/threads_posix.h:155
    #2  util_queue_thread_func ([email protected]=0x563e8bb93dd0) at ../src/util/u_queue.c:289
    #3  0x00007f2ceb6894e7 in impl_thrd_routine (p=<optimized out>) at ../include/c11/threads_posix.h:87
    #4  0x00007f2cec6bf422 in start_thread () at /usr/lib/libpthread.so.0
    #5  0x00007f2cec5eebf3 in clone () at /usr/lib/libc.so.6
    
    Thread 3 (Thread 0x7f2ce2452700 (LWP 9651)):
    #0  0x00007f2cec6c5e32 in [email protected]@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0
    #1  0x00007f2ceb6898d3 in cnd_wait (mtx=0x563e8bb93c58, cond=0x563e8bb93c80) at ../include/c11/threads_posix.h:155
    #2  util_queue_thread_func ([email protected]=0x563e8bb9d6a0) at ../src/util/u_queue.c:289
    #3  0x00007f2ceb6894e7 in impl_thrd_routine (p=<optimized out>) at ../include/c11/threads_posix.h:87
    #4  0x00007f2cec6bf422 in start_thread () at /usr/lib/libpthread.so.0
    #5  0x00007f2cec5eebf3 in clone () at /usr/lib/libc.so.6
    
    Thread 2 (Thread 0x7f2ce1c51700 (LWP 9652)):
    #0  0x00007f2cec6c5e32 in [email protected]@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0
    #1  0x00007f2ceb6898d3 in cnd_wait (mtx=0x563e8bb93c58, cond=0x563e8bb93c80) at ../include/c11/threads_posix.h:155
    #2  util_queue_thread_func ([email protected]=0x563e8bb9d8a0) at ../src/util/u_queue.c:289
    #3  0x00007f2ceb6894e7 in impl_thrd_routine (p=<optimized out>) at ../include/c11/threads_posix.h:87
    #4  0x00007f2cec6bf422 in start_thread () at /usr/lib/libpthread.so.0
    #5  0x00007f2cec5eebf3 in clone () at /usr/lib/libc.so.6
    
    Thread 1 (Thread 0x7f2cec05fe40 (LWP 9646)):
    #0  0x00007f2cec5eef3e in epoll_wait () at /usr/lib/libc.so.6
    #1  0x0000563e8b9a9adc in wlserver_run() () at ../src/wlserver.cpp:504
    #2  0x0000563e8b9a6784 in main(int, char**) (argc=6, argv=0x7fff68712248) at ../src/main.cpp:119
    
    bug next 
    Reply
  • Figure out why we're not always 'flipping' in Xwayland
    Figure out why we're not always 'flipping' in Xwayland

    Jan 21, 2020

    Dragon Dogma has Xwayland rendering in the gfx pipe. Why? It needs to go.

    next 
    Reply
  • Doesn't work with MangoHUD
    Doesn't work with MangoHUD

    Dec 6, 2020

    I tried it to use for some shortcuts of games. I tried to upscale my resolution from 1080p to 2160p for the game aleph one (Marathon Source Port) with this command: MANGOHUD=1 MANGOHUD_DLSYM=1 ENABLE_VKBASALT=1 mangohud gamescope -w 3840 -h 2160 -- alephone-marathon It works with MangoHud,but if I start it with the gamescope command,it won't launch and this happens on many programs that I wanna start with a shortcut instead of in steam.

    Reply
  • Failed to find physical device on Intel
    Failed to find physical device on Intel

    May 8, 2020

    I'm trying to start gamescope (e.g. gamescope command without params), but then I get segfault with the following errors:

    glamor: No eglstream capable devices found
    The XKEYBOARD keymap compiler (xkbcomp) reports:
    > Internal error: Could not resolve keysym XF86FullScreen
    Errors from xkbcomp are not fatal to the X server
    2020-05-08 18:52:25 - [types/wlr_surface.c:609] New wlr_surface ????? (res ?????)
    2020-05-08 18:52:25 - [xwayland/xwayland.c:349] sent SIGUSR1 to process ?????
    2020-05-08 18:52:25 - [xwayland/xwayland.c:227] Xserver is ready
    The XKEYBOARD keymap compiler (xkbcomp) reports:
    > Warning: Unsupported maximum keycode 569, clipping.
    > X11 cannot support keycodes above 255.
    > Internal error: Could not resolve keysym Invalid
    Errors from xkbcomp are not fatal to the X server
    (EE) failed to read Wayland events: Broken pipe
    Segmentation fault (core dumped)
    

    Any ideas?

    Reply