Linux Support (Beta)

Ask here if you experience technical problems with X4: Foundations.

Moderator: Moderators for English X Forum

BaronVerde
Posts: 477
Joined: Wed, 16. Dec 20, 21:26
x4

Re: Linux Support (Beta)

Post by BaronVerde » Mon, 26. Jul 21, 15:06

Yeah, missing information, @sgtnasty.

Instead of 'glxinfo', try 'vulkaninfo' ;-)

Code: Select all

  /l、 
゙(゚、 。 7 
 l、゙ ~ヽ   / 
 じしf_, )ノ 

User avatar
sgtnasty
Posts: 13
Joined: Mon, 4. May 20, 01:43
x4

Re: Linux Support (Beta)

Post by sgtnasty » Mon, 26. Jul 21, 23:13

BaronVerde wrote:
Mon, 26. Jul 21, 15:06
Yeah, missing information, @sgtnasty.

Instead of 'glxinfo', try 'vulkaninfo' ;-)
It seems I don't have vulkaninfo installed and can't find the package that provides it, im still looking.

Code: Select all

$ ldd -r X4
provided the exact info as just running ldd without the -r

User avatar
sgtnasty
Posts: 13
Joined: Mon, 4. May 20, 01:43
x4

Re: Linux Support (Beta)

Post by sgtnasty » Mon, 26. Jul 21, 23:29

I managed to get vulkaninfo installed, it generates a TON of info. Here is the main part:

Let me know if I can provide more.

Code: Select all

==========
VULKANINFO
==========

Vulkan Instance Version: 1.2.185


Instance Extensions: count = 17
===============================
	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_xcb_surface                     : extension revision 6
	VK_KHR_xlib_surface                    : extension revision 6

Layers: count = 1
=================
VK_LAYER_NV_optimus (NVIDIA Optimus layer) Vulkan version 1.2.175, layer version 1:
	Layer Extensions: count = 0
	Devices: count = 1
		GPU id = 0 (NVIDIA GeForce GTX 1050 Ti with Max-Q Design)
		Layer-Device Extensions: count = 0

Presentable Surfaces:
=====================
GPU id : 0 (NVIDIA GeForce GTX 1050 Ti with Max-Q Design):
	Surface types: count = 2
		VK_KHR_xcb_surface
		VK_KHR_xlib_surface
	Formats: count = 2
		SurfaceFormat[0]:
			format = FORMAT_B8G8R8A8_UNORM
			colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
		SurfaceFormat[1]:
			format = FORMAT_B8G8R8A8_SRGB
			colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
	Present Modes: count = 3
		PRESENT_MODE_FIFO_KHR
		PRESENT_MODE_FIFO_RELAXED_KHR
		PRESENT_MODE_IMMEDIATE_KHR
	VkSurfaceCapabilitiesKHR:
	-------------------------
		minImageCount = 2
		maxImageCount = 8
		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 = 1
			COMPOSITE_ALPHA_OPAQUE_BIT_KHR
		supportedUsageFlags: count = 6
			IMAGE_USAGE_TRANSFER_SRC_BIT
			IMAGE_USAGE_TRANSFER_DST_BIT
			IMAGE_USAGE_SAMPLED_BIT
			IMAGE_USAGE_STORAGE_BIT
			IMAGE_USAGE_COLOR_ATTACHMENT_BIT
			IMAGE_USAGE_INPUT_ATTACHMENT_BIT
	VkSurfaceCapabilities2EXT:
	--------------------------
		supportedSurfaceCounters:
			None
	VkSurfaceProtectedCapabilitiesKHR:
	----------------------------------
		supportsProtected = false



Device Groups:
==============
Group 0:
	Properties:
		physicalDevices: count = 1
			NVIDIA GeForce GTX 1050 Ti with Max-Q Design (ID: 0)
		subsetAllocation = 0

	Present Capabilities:
		NVIDIA GeForce GTX 1050 Ti with Max-Q Design (ID: 0):
			Can present images from the following devices: count = 1
				NVIDIA GeForce GTX 1050 Ti with Max-Q Design (ID: 0)
		Present modes: count = 1
			DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR


BaronVerde
Posts: 477
Joined: Wed, 16. Dec 20, 21:26
x4

Re: Linux Support (Beta)

Post by BaronVerde » Tue, 27. Jul 21, 00:12

Might it be that you're missing the proper driver ?
Does X4 start at all ?
Do you get any other error messages apart from the two broken libs ?
Do you have the proprietary nvidia driver installed ? You'll find it in vulkaninfo under 'VkPhysicalDeviceDriverProperties'.

Maybe this can help ? https://wiki.archlinux.org/title/Vulkan

Code: Select all

  /l、 
゙(゚、 。 7 
 l、゙ ~ヽ   / 
 じしf_, )ノ 

User avatar
sgtnasty
Posts: 13
Joined: Mon, 4. May 20, 01:43
x4

Re: Linux Support (Beta)

Post by sgtnasty » Tue, 27. Jul 21, 01:37

BaronVerde wrote:
Tue, 27. Jul 21, 00:12
Might it be that you're missing the proper driver ?
Does X4 start at all ?
Do you get any other error messages apart from the two broken libs ?
Do you have the proprietary nvidia driver installed ? You'll find it in vulkaninfo under 'VkPhysicalDeviceDriverProperties'.
1) I have the proprietary NVIDIA driver: 470.57.02 (and it works on many other games in Steam)
2) No, the window pops up for a microsecond, than it quits.
3) No other messages, nothing in journalctl
4) yes VkPhysicalDeviceDriverProperties:

Code: Select all

VkPhysicalDeviceDriverProperties:
---------------------------------
	driverID           = DRIVER_ID_NVIDIA_PROPRIETARY
	driverName         = NVIDIA
	driverInfo         = 470.57.02
	conformanceVersion = 1.2.6.0
BaronVerde wrote:
Tue, 27. Jul 21, 00:12
Maybe this can help ? https://wiki.archlinux.org/title/Vulkan
I will check this out and read it.

Thanks for all your help, i DO appreciate it.

Alm888
Posts: 487
Joined: Sat, 14. Sep 19, 19:38
x4

Re: Linux Support (Beta)

Post by Alm888 » Tue, 27. Jul 21, 07:56

sgtnasty wrote:
Mon, 26. Jul 21, 23:29

Code: Select all

VK_LAYER_NV_optimus (NVIDIA Optimus layer) Vulkan version 1.2.175, layer version 1:
	Layer Extensions: count = 0
	Devices: count = 1
		GPU id = 0 (NVIDIA GeForce GTX 1050 Ti with Max-Q Design)
		Layer-Device Extensions: count = 0
A laptop with nVidia Optimus. Noted.
Currently the game seems to have issues with multi-GPU setups (does not detect proper GPU) on notebooks. See this and this thread. They are for Windows, so some parts differ, but I think we can see similarities.

User avatar
sgtnasty
Posts: 13
Joined: Mon, 4. May 20, 01:43
x4

Re: Linux Support (Beta)

Post by sgtnasty » Tue, 27. Jul 21, 13:49

Alm888 wrote:
Tue, 27. Jul 21, 07:56
A laptop with nVidia Optimus. Noted.
Currently the game seems to have issues with multi-GPU setups (does not detect proper GPU) on notebooks.
So I will go into the BIOS and disable the on board graphics, remove the optimus-manager and try it out. I never use the on-board because I am always plugged in.

BaronVerde
Posts: 477
Joined: Wed, 16. Dec 20, 21:26
x4

Re: Linux Support (Beta)

Post by BaronVerde » Tue, 27. Jul 21, 15:06

Guessing is unlikely to solve any problem.

Disabling the onboard graphics (if it exists) is not even a hack. The quoted line means just the presence of a validation layer, not necessarily actual functionality. Specifically since the 1050 apparently only exposes one device anyway, but I have no plan of optimus.

Post the info requested in the header and not just a dismisive "this is the important part", and you're much more likely to attract someone knowledgable from egosoft. There's not enough info for something serious. It may be well a completely different problem.

Nerdish:
Spoiler
Show
What I found during my searches: One can start x4 with debug output enabled via './X4 -logfile log.txt' (on my machine x4 hangs, but maybe it helps in your case). You'll find the output in ~/.config/EgoSoft/X4. Another switch I found is -gpu:x where x is 1,2,.... Giving an invalid number makes X4 list physical devices it found. One may choose more wisely then :-)

Assuming it is indeed the vulkan setup that causes your problem and in case you have some basic programming knowledge, try setting up your system for vulkan dev with the help of a vulkan tutorial, create an instance and select a device. If that works you most certainly know where the error was ;-)

Code: Select all

  /l、 
゙(゚、 。 7 
 l、゙ ~ヽ   / 
 じしf_, )ノ 

User avatar
sgtnasty
Posts: 13
Joined: Mon, 4. May 20, 01:43
x4

Re: Linux Support (Beta)

Post by sgtnasty » Tue, 27. Jul 21, 21:18

BaronVerde wrote:
Tue, 27. Jul 21, 15:06
Post the info requested in the header and not just a dismisive "this is the important part", and you're much more likely to attract someone knowledgable from egosoft. There's not enough info for something serious. It may be well a completely different problem.
I am very sorry if I came across as dismissive, I just assumed the file size of the vulkaninfo was too big to post on the forum website.
Here it is in its entirety:

Code: Select all

==========
VULKANINFO
==========

Vulkan Instance Version: 1.2.185


Instance Extensions: count = 17
===============================
	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_xcb_surface                     : extension revision 6
	VK_KHR_xlib_surface                    : extension revision 6

Layers: count = 1
=================
VK_LAYER_NV_optimus (NVIDIA Optimus layer) Vulkan version 1.2.175, layer version 1:
	Layer Extensions: count = 0
	Devices: count = 1
		GPU id = 0 (NVIDIA GeForce GTX 1050 Ti with Max-Q Design)
		Layer-Device Extensions: count = 0

Presentable Surfaces:
=====================
GPU id : 0 (NVIDIA GeForce GTX 1050 Ti with Max-Q Design):
	Surface types: count = 2
		VK_KHR_xcb_surface
		VK_KHR_xlib_surface
	Formats: count = 2
		SurfaceFormat[0]:
			format = FORMAT_B8G8R8A8_UNORM
			colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
		SurfaceFormat[1]:
			format = FORMAT_B8G8R8A8_SRGB
			colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
	Present Modes: count = 3
		PRESENT_MODE_FIFO_KHR
		PRESENT_MODE_FIFO_RELAXED_KHR
		PRESENT_MODE_IMMEDIATE_KHR
	VkSurfaceCapabilitiesKHR:
	-------------------------
		minImageCount = 2
		maxImageCount = 8
		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 = 1
			COMPOSITE_ALPHA_OPAQUE_BIT_KHR
		supportedUsageFlags: count = 6
			IMAGE_USAGE_TRANSFER_SRC_BIT
			IMAGE_USAGE_TRANSFER_DST_BIT
			IMAGE_USAGE_SAMPLED_BIT
			IMAGE_USAGE_STORAGE_BIT
			IMAGE_USAGE_COLOR_ATTACHMENT_BIT
			IMAGE_USAGE_INPUT_ATTACHMENT_BIT
	VkSurfaceCapabilities2EXT:
	--------------------------
		supportedSurfaceCounters:
			None
	VkSurfaceProtectedCapabilitiesKHR:
	----------------------------------
		supportsProtected = false



Device Groups:
==============
Group 0:
	Properties:
		physicalDevices: count = 1
			NVIDIA GeForce GTX 1050 Ti with Max-Q Design (ID: 0)
		subsetAllocation = 0

	Present Capabilities:
		NVIDIA GeForce GTX 1050 Ti with Max-Q Design (ID: 0):
			Can present images from the following devices: count = 1
				NVIDIA GeForce GTX 1050 Ti with Max-Q Design (ID: 0)
		Present modes: count = 1
			DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR


Device Properties and Extensions:
=================================
GPU0:
VkPhysicalDeviceProperties:
---------------------------
	apiVersion        = 4202671 (1.2.175)
	driverVersion     = 1972256896 (0x758e4080)
	vendorID          = 0x10de
	deviceID          = 0x1c8c
	deviceType        = PHYSICAL_DEVICE_TYPE_DISCRETE_GPU
	deviceName        = NVIDIA GeForce GTX 1050 Ti with Max-Q Design
	pipelineCacheUUID = 674e1745-2295-dc81-8c5c-98b938d89b25

VkPhysicalDeviceLimits:
-----------------------
	maxImageDimension1D                             = 32768
	maxImageDimension2D                             = 32768
	maxImageDimension3D                             = 16384
	maxImageDimensionCube                           = 32768
	maxImageArrayLayers                             = 2048
	maxTexelBufferElements                          = 134217728
	maxUniformBufferRange                           = 65536
	maxStorageBufferRange                           = 4294967295
	maxPushConstantsSize                            = 256
	maxMemoryAllocationCount                        = 4294967295
	maxSamplerAllocationCount                       = 4000
	bufferImageGranularity                          = 0x00000400
	sparseAddressSpaceSize                          = 0xffffffffff
	maxBoundDescriptorSets                          = 32
	maxPerStageDescriptorSamplers                   = 1048576
	maxPerStageDescriptorUniformBuffers             = 15
	maxPerStageDescriptorStorageBuffers             = 1048576
	maxPerStageDescriptorSampledImages              = 1048576
	maxPerStageDescriptorStorageImages              = 1048576
	maxPerStageDescriptorInputAttachments           = 1048576
	maxPerStageResources                            = 4294967295
	maxDescriptorSetSamplers                        = 1048576
	maxDescriptorSetUniformBuffers                  = 90
	maxDescriptorSetUniformBuffersDynamic           = 15
	maxDescriptorSetStorageBuffers                  = 1048576
	maxDescriptorSetStorageBuffersDynamic           = 16
	maxDescriptorSetSampledImages                   = 1048576
	maxDescriptorSetStorageImages                   = 1048576
	maxDescriptorSetInputAttachments                = 1048576
	maxVertexInputAttributes                        = 32
	maxVertexInputBindings                          = 32
	maxVertexInputAttributeOffset                   = 2047
	maxVertexInputBindingStride                     = 2048
	maxVertexOutputComponents                       = 128
	maxTessellationGenerationLevel                  = 64
	maxTessellationPatchSize                        = 32
	maxTessellationControlPerVertexInputComponents  = 128
	maxTessellationControlPerVertexOutputComponents = 128
	maxTessellationControlPerPatchOutputComponents  = 120
	maxTessellationControlTotalOutputComponents     = 4216
	maxTessellationEvaluationInputComponents        = 128
	maxTessellationEvaluationOutputComponents       = 128
	maxGeometryShaderInvocations                    = 32
	maxGeometryInputComponents                      = 128
	maxGeometryOutputComponents                     = 128
	maxGeometryOutputVertices                       = 1024
	maxGeometryTotalOutputComponents                = 1024
	maxFragmentInputComponents                      = 128
	maxFragmentOutputAttachments                    = 8
	maxFragmentDualSrcAttachments                   = 1
	maxFragmentCombinedOutputResources              = 16
	maxComputeSharedMemorySize                      = 49152
	maxComputeWorkGroupCount: count = 3
		2147483647
		65535
		65535
	maxComputeWorkGroupInvocations                  = 1536
	maxComputeWorkGroupSize: count = 3
		1536
		1024
		64
	subPixelPrecisionBits                           = 8
	subTexelPrecisionBits                           = 8
	mipmapPrecisionBits                             = 8
	maxDrawIndexedIndexValue                        = 4294967295
	maxDrawIndirectCount                            = 4294967295
	maxSamplerLodBias                               = 15
	maxSamplerAnisotropy                            = 16
	maxViewports                                    = 16
	maxViewportDimensions: count = 2
		32768
		32768
	viewportBoundsRange: count = 2
		-65536
		65536
	viewportSubPixelBits                            = 8
	minMemoryMapAlignment                           = 64
	minTexelBufferOffsetAlignment                   = 0x00000010
	minUniformBufferOffsetAlignment                 = 0x00000100
	minStorageBufferOffsetAlignment                 = 0x00000010
	minTexelOffset                                  = -8
	maxTexelOffset                                  = 7
	minTexelGatherOffset                            = -32
	maxTexelGatherOffset                            = 31
	minInterpolationOffset                          = -0.5
	maxInterpolationOffset                          = 0.4375
	subPixelInterpolationOffsetBits                 = 4
	maxFramebufferWidth                             = 32768
	maxFramebufferHeight                            = 32768
	maxFramebufferLayers                            = 2048
	framebufferColorSampleCounts: count = 4
		SAMPLE_COUNT_1_BIT
		SAMPLE_COUNT_2_BIT
		SAMPLE_COUNT_4_BIT
		SAMPLE_COUNT_8_BIT
	framebufferDepthSampleCounts: count = 4
		SAMPLE_COUNT_1_BIT
		SAMPLE_COUNT_2_BIT
		SAMPLE_COUNT_4_BIT
		SAMPLE_COUNT_8_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 = 4
		SAMPLE_COUNT_1_BIT
		SAMPLE_COUNT_2_BIT
		SAMPLE_COUNT_4_BIT
		SAMPLE_COUNT_8_BIT
	sampledImageIntegerSampleCounts: count = 4
		SAMPLE_COUNT_1_BIT
		SAMPLE_COUNT_2_BIT
		SAMPLE_COUNT_4_BIT
		SAMPLE_COUNT_8_BIT
	sampledImageDepthSampleCounts: count = 4
		SAMPLE_COUNT_1_BIT
		SAMPLE_COUNT_2_BIT
		SAMPLE_COUNT_4_BIT
		SAMPLE_COUNT_8_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 = 4
		SAMPLE_COUNT_1_BIT
		SAMPLE_COUNT_2_BIT
		SAMPLE_COUNT_4_BIT
		SAMPLE_COUNT_8_BIT
	maxSampleMaskWords                              = 1
	timestampComputeAndGraphics                     = true
	timestampPeriod                                 = 1
	maxClipDistances                                = 8
	maxCullDistances                                = 8
	maxCombinedClipAndCullDistances                 = 8
	discreteQueuePriorities                         = 2
	pointSizeRange: count = 2
		1
		2047.94
	lineWidthRange: count = 2
		1
		64
	pointSizeGranularity                            = 0.0625
	lineWidthGranularity                            = 0.0625
	strictLines                                     = true
	standardSampleLocations                         = true
	optimalBufferCopyOffsetAlignment                = 0x00000001
	optimalBufferCopyRowPitchAlignment              = 0x00000001
	nonCoherentAtomSize                             = 0x00000040

VkPhysicalDeviceSparseProperties:
---------------------------------
	residencyStandard2DBlockShape            = true
	residencyStandard2DMultisampleBlockShape = true
	residencyStandard3DBlockShape            = true
	residencyAlignedMipSize                  = false
	residencyNonResidentStrict               = true

VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT:
----------------------------------------------------
	advancedBlendMaxColorAttachments      = 8
	advancedBlendIndependentBlend         = false
	advancedBlendNonPremultipliedSrcColor = true
	advancedBlendNonPremultipliedDstColor = true
	advancedBlendCorrelatedOverlap        = true
	advancedBlendAllOperations            = true

VkPhysicalDeviceConservativeRasterizationPropertiesEXT:
-------------------------------------------------------
	primitiveOverestimationSize                 = 0
	maxExtraPrimitiveOverestimationSize         = 0.75
	extraPrimitiveOverestimationSizeGranularity = 0.25
	primitiveUnderestimation                    = false
	conservativePointAndLineRasterization       = true
	degenerateTrianglesRasterized               = true
	degenerateLinesRasterized                   = false
	fullyCoveredFragmentShaderInputVariable     = false
	conservativeRasterizationPostDepthCoverage  = true

VkPhysicalDeviceCustomBorderColorPropertiesEXT:
-----------------------------------------------
	maxCustomBorderColorSamplers = 4000

VkPhysicalDeviceDepthStencilResolveProperties:
----------------------------------------------
	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

VkPhysicalDeviceDescriptorIndexingProperties:
---------------------------------------------
	maxUpdateAfterBindDescriptorsInAllPools              = 4294967295
	shaderUniformBufferArrayNonUniformIndexingNative     = true
	shaderSampledImageArrayNonUniformIndexingNative      = true
	shaderStorageBufferArrayNonUniformIndexingNative     = true
	shaderStorageImageArrayNonUniformIndexingNative      = true
	shaderInputAttachmentArrayNonUniformIndexingNative   = true
	robustBufferAccessUpdateAfterBind                    = true
	quadDivergentImplicitLod                             = true
	maxPerStageDescriptorUpdateAfterBindSamplers         = 1048576
	maxPerStageDescriptorUpdateAfterBindUniformBuffers   = 15
	maxPerStageDescriptorUpdateAfterBindStorageBuffers   = 1048576
	maxPerStageDescriptorUpdateAfterBindSampledImages    = 1048576
	maxPerStageDescriptorUpdateAfterBindStorageImages    = 1048576
	maxPerStageDescriptorUpdateAfterBindInputAttachments = 1048576
	maxPerStageUpdateAfterBindResources                  = 4294967295
	maxDescriptorSetUpdateAfterBindSamplers              = 1048576
	maxDescriptorSetUpdateAfterBindUniformBuffers        = 90
	maxDescriptorSetUpdateAfterBindUniformBuffersDynamic = 15
	maxDescriptorSetUpdateAfterBindStorageBuffers        = 1048576
	maxDescriptorSetUpdateAfterBindStorageBuffersDynamic = 16
	maxDescriptorSetUpdateAfterBindSampledImages         = 1048576
	maxDescriptorSetUpdateAfterBindStorageImages         = 1048576
	maxDescriptorSetUpdateAfterBindInputAttachments      = 1048576

VkPhysicalDeviceDiscardRectanglePropertiesEXT:
----------------------------------------------
	maxDiscardRectangles = 8

VkPhysicalDeviceDriverProperties:
---------------------------------
	driverID           = DRIVER_ID_NVIDIA_PROPRIETARY
	driverName         = NVIDIA
	driverInfo         = 470.57.02
	conformanceVersion = 1.2.6.0

VkPhysicalDeviceExternalMemoryHostPropertiesEXT:
------------------------------------------------
	minImportedHostPointerAlignment = 0x00001000

VkPhysicalDeviceFloatControlsProperties:
----------------------------------------
	denormBehaviorIndependence            = SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL
	roundingModeIndependence              = SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL
	shaderSignedZeroInfNanPreserveFloat16 = true
	shaderSignedZeroInfNanPreserveFloat32 = true
	shaderSignedZeroInfNanPreserveFloat64 = true
	shaderDenormPreserveFloat16           = true
	shaderDenormPreserveFloat32           = false
	shaderDenormPreserveFloat64           = false
	shaderDenormFlushToZeroFloat16        = false
	shaderDenormFlushToZeroFloat32        = false
	shaderDenormFlushToZeroFloat64        = false
	shaderRoundingModeRTEFloat16          = true
	shaderRoundingModeRTEFloat32          = true
	shaderRoundingModeRTEFloat64          = true
	shaderRoundingModeRTZFloat16          = false
	shaderRoundingModeRTZFloat32          = true
	shaderRoundingModeRTZFloat64          = true

VkPhysicalDeviceIDProperties:
-----------------------------
	deviceUUID      = e7254927-0a75-a95b-ae8e-5c9cab42d6ef
	driverUUID      = 8c5c98b9-38d8-9b25-dc5f-b98cd1a24e4e
	deviceNodeMask  = 1
	deviceLUIDValid = false

VkPhysicalDeviceInlineUniformBlockPropertiesEXT:
------------------------------------------------
	maxInlineUniformBlockSize                               = 256
	maxPerStageDescriptorInlineUniformBlocks                = 32
	maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks = 32
	maxDescriptorSetInlineUniformBlocks                     = 32
	maxDescriptorSetUpdateAfterBindInlineUniformBlocks      = 32

VkPhysicalDeviceLineRasterizationPropertiesEXT:
-----------------------------------------------
	lineSubPixelPrecisionBits = 8

VkPhysicalDeviceMaintenance3Properties:
---------------------------------------
	maxPerSetDescriptors    = 4294967295
	maxMemoryAllocationSize = 0xffe00000

VkPhysicalDeviceMultiviewProperties:
------------------------------------
	maxMultiviewViewCount     = 32
	maxMultiviewInstanceIndex = 134217727

VkPhysicalDevicePCIBusInfoPropertiesEXT:
----------------------------------------
	pciDomain   = 0
	pciBus      = 1
	pciDevice   = 0
	pciFunction = 0

VkPhysicalDevicePointClippingProperties:
----------------------------------------
	pointClippingBehavior = POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY

VkPhysicalDeviceProtectedMemoryProperties:
------------------------------------------
	protectedNoFault = false

VkPhysicalDeviceProvokingVertexPropertiesEXT:
---------------------------------------------
	provokingVertexModePerPipeline                       = true
	transformFeedbackPreservesTriangleFanProvokingVertex = true

VkPhysicalDevicePushDescriptorPropertiesKHR:
--------------------------------------------
	maxPushDescriptors = 32

VkPhysicalDeviceRobustness2PropertiesEXT:
-----------------------------------------
	robustStorageBufferAccessSizeAlignment = 0x00000001
	robustUniformBufferAccessSizeAlignment = 0x00000100

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

VkPhysicalDeviceSamplerFilterMinmaxProperties:
----------------------------------------------
	filterMinmaxSingleComponentFormats = true
	filterMinmaxImageComponentMapping  = true

VkPhysicalDeviceSubgroupProperties:
-----------------------------------
	subgroupSize              = 32
	supportedStages: count = 8
		SHADER_STAGE_VERTEX_BIT
		SHADER_STAGE_TESSELLATION_CONTROL_BIT
		SHADER_STAGE_TESSELLATION_EVALUATION_BIT
		SHADER_STAGE_GEOMETRY_BIT
		SHADER_STAGE_FRAGMENT_BIT
		SHADER_STAGE_COMPUTE_BIT
		SHADER_STAGE_ALL_GRAPHICS
		SHADER_STAGE_ALL
	supportedOperations: count = 9
		SUBGROUP_FEATURE_BASIC_BIT
		SUBGROUP_FEATURE_VOTE_BIT
		SUBGROUP_FEATURE_ARITHMETIC_BIT
		SUBGROUP_FEATURE_BALLOT_BIT
		SUBGROUP_FEATURE_SHUFFLE_BIT
		SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT
		SUBGROUP_FEATURE_CLUSTERED_BIT
		SUBGROUP_FEATURE_QUAD_BIT
		SUBGROUP_FEATURE_PARTITIONED_BIT_NV
	quadOperationsInAllStages = true

VkPhysicalDeviceSubgroupSizeControlPropertiesEXT:
-------------------------------------------------
	minSubgroupSize              = 32
	maxSubgroupSize              = 32
	maxComputeWorkgroupSubgroups = 3145728
	requiredSubgroupSizeStages: count = 8
		SHADER_STAGE_VERTEX_BIT
		SHADER_STAGE_TESSELLATION_CONTROL_BIT
		SHADER_STAGE_TESSELLATION_EVALUATION_BIT
		SHADER_STAGE_GEOMETRY_BIT
		SHADER_STAGE_FRAGMENT_BIT
		SHADER_STAGE_COMPUTE_BIT
		SHADER_STAGE_ALL_GRAPHICS
		SHADER_STAGE_ALL

VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT:
--------------------------------------------------
	storageTexelBufferOffsetAlignmentBytes       = 0x00000010
	storageTexelBufferOffsetSingleTexelAlignment = true
	uniformTexelBufferOffsetAlignmentBytes       = 0x00000010
	uniformTexelBufferOffsetSingleTexelAlignment = true

VkPhysicalDeviceTimelineSemaphoreProperties:
--------------------------------------------
	maxTimelineSemaphoreValueDifference = 2147483647

VkPhysicalDeviceTransformFeedbackPropertiesEXT:
-----------------------------------------------
	maxTransformFeedbackStreams                = 4
	maxTransformFeedbackBuffers                = 4
	maxTransformFeedbackBufferSize             = 0xffffffffffffffff
	maxTransformFeedbackStreamDataSize         = 2048
	maxTransformFeedbackBufferDataSize         = 512
	maxTransformFeedbackBufferDataStride       = 2048
	transformFeedbackQueries                   = true
	transformFeedbackStreamsLinesTriangles     = false
	transformFeedbackRasterizationStreamSelect = true
	transformFeedbackDraw                      = true

VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT:
----------------------------------------------------
	maxVertexAttribDivisor = 4294967295

VkPhysicalDeviceVulkan11Properties:
-----------------------------------
	deviceUUID                        = e7254927-0a75-a95b-ae8e-5c9cab42d6ef
	driverUUID                        = 8c5c98b9-38d8-9b25-dc5f-b98cd1a24e4e
	deviceNodeMask                    = 1
	deviceLUIDValid                   = false
	subgroupSize                      = 32
	subgroupSupportedStages: count = 8
		SHADER_STAGE_VERTEX_BIT
		SHADER_STAGE_TESSELLATION_CONTROL_BIT
		SHADER_STAGE_TESSELLATION_EVALUATION_BIT
		SHADER_STAGE_GEOMETRY_BIT
		SHADER_STAGE_FRAGMENT_BIT
		SHADER_STAGE_COMPUTE_BIT
		SHADER_STAGE_ALL_GRAPHICS
		SHADER_STAGE_ALL
	subgroupSupportedOperations: count = 9
		SUBGROUP_FEATURE_BASIC_BIT
		SUBGROUP_FEATURE_VOTE_BIT
		SUBGROUP_FEATURE_ARITHMETIC_BIT
		SUBGROUP_FEATURE_BALLOT_BIT
		SUBGROUP_FEATURE_SHUFFLE_BIT
		SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT
		SUBGROUP_FEATURE_CLUSTERED_BIT
		SUBGROUP_FEATURE_QUAD_BIT
		SUBGROUP_FEATURE_PARTITIONED_BIT_NV
	subgroupQuadOperationsInAllStages = true
	pointClippingBehavior             = POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY
	maxMultiviewViewCount             = 32
	maxMultiviewInstanceIndex         = 134217727
	protectedNoFault                  = false
	maxPerSetDescriptors              = 4294967295
	maxMemoryAllocationSize           = 0xffe00000

VkPhysicalDeviceVulkan12Properties:
-----------------------------------
	driverID                                             = DRIVER_ID_NVIDIA_PROPRIETARY
	driverName                                           = NVIDIA
	driverInfo                                           = 470.57.02
	conformanceVersion                                   = 1.2.6.0
	denormBehaviorIndependence                           = SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL
	roundingModeIndependence                             = SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL
	shaderSignedZeroInfNanPreserveFloat16                = true
	shaderSignedZeroInfNanPreserveFloat32                = true
	shaderSignedZeroInfNanPreserveFloat64                = true
	shaderDenormPreserveFloat16                          = true
	shaderDenormPreserveFloat32                          = false
	shaderDenormPreserveFloat64                          = false
	shaderDenormFlushToZeroFloat16                       = false
	shaderDenormFlushToZeroFloat32                       = false
	shaderDenormFlushToZeroFloat64                       = false
	shaderRoundingModeRTEFloat16                         = true
	shaderRoundingModeRTEFloat32                         = true
	shaderRoundingModeRTEFloat64                         = true
	shaderRoundingModeRTZFloat16                         = false
	shaderRoundingModeRTZFloat32                         = true
	shaderRoundingModeRTZFloat64                         = true
	maxUpdateAfterBindDescriptorsInAllPools              = 4294967295
	shaderUniformBufferArrayNonUniformIndexingNative     = true
	shaderSampledImageArrayNonUniformIndexingNative      = true
	shaderStorageBufferArrayNonUniformIndexingNative     = true
	shaderStorageImageArrayNonUniformIndexingNative      = true
	shaderInputAttachmentArrayNonUniformIndexingNative   = true
	robustBufferAccessUpdateAfterBind                    = true
	quadDivergentImplicitLod                             = true
	maxPerStageDescriptorUpdateAfterBindSamplers         = 1048576
	maxPerStageDescriptorUpdateAfterBindUniformBuffers   = 15
	maxPerStageDescriptorUpdateAfterBindStorageBuffers   = 1048576
	maxPerStageDescriptorUpdateAfterBindSampledImages    = 1048576
	maxPerStageDescriptorUpdateAfterBindStorageImages    = 1048576
	maxPerStageDescriptorUpdateAfterBindInputAttachments = 1048576
	maxPerStageUpdateAfterBindResources                  = 4294967295
	maxDescriptorSetUpdateAfterBindSamplers              = 1048576
	maxDescriptorSetUpdateAfterBindUniformBuffers        = 90
	maxDescriptorSetUpdateAfterBindUniformBuffersDynamic = 15
	maxDescriptorSetUpdateAfterBindStorageBuffers        = 1048576
	maxDescriptorSetUpdateAfterBindStorageBuffersDynamic = 16
	maxDescriptorSetUpdateAfterBindSampledImages         = 1048576
	maxDescriptorSetUpdateAfterBindStorageImages         = 1048576
	maxDescriptorSetUpdateAfterBindInputAttachments      = 1048576
	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
	filterMinmaxSingleComponentFormats                   = true
	filterMinmaxImageComponentMapping                    = true
	maxTimelineSemaphoreValueDifference                  = 2147483647
	framebufferIntegerColorSampleCounts: count = 4
		SAMPLE_COUNT_1_BIT
		SAMPLE_COUNT_2_BIT
		SAMPLE_COUNT_4_BIT
		SAMPLE_COUNT_8_BIT


Device Extensions: count = 118
	VK_EXT_4444_formats                       : extension revision 1
	VK_EXT_blend_operation_advanced           : extension revision 2
	VK_EXT_buffer_device_address              : extension revision 2
	VK_EXT_calibrated_timestamps              : extension revision 1
	VK_EXT_color_write_enable                 : 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_depth_range_unrestricted           : extension revision 1
	VK_EXT_descriptor_indexing                : extension revision 2
	VK_EXT_discard_rectangles                 : extension revision 1
	VK_EXT_display_control                    : extension revision 1
	VK_EXT_extended_dynamic_state             : extension revision 1
	VK_EXT_extended_dynamic_state2            : 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_global_priority_query              : extension revision 1
	VK_EXT_host_query_reset                   : 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_provoking_vertex                   : 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_image_atomic_int64          : 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_tooling_info                       : extension revision 1
	VK_EXT_transform_feedback                 : extension revision 1
	VK_EXT_vertex_attribute_divisor           : extension revision 3
	VK_EXT_vertex_input_dynamic_state         : extension revision 2
	VK_EXT_ycbcr_image_arrays                 : 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_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_maintenance1                       : extension revision 2
	VK_KHR_maintenance2                       : extension revision 1
	VK_KHR_maintenance3                       : extension revision 1
	VK_KHR_multiview                          : 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_synchronization2                   : 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_NVX_multiview_per_view_attributes      : extension revision 1
	VK_NV_clip_space_w_scaling                : extension revision 1
	VK_NV_coverage_reduction_mode             : extension revision 1
	VK_NV_dedicated_allocation                : extension revision 1
	VK_NV_dedicated_allocation_image_aliasing : extension revision 1
	VK_NV_device_diagnostic_checkpoints       : extension revision 2
	VK_NV_device_diagnostics_config           : extension revision 1
	VK_NV_device_generated_commands           : extension revision 3
	VK_NV_fill_rectangle                      : extension revision 1
	VK_NV_fragment_coverage_to_color          : extension revision 1
	VK_NV_framebuffer_mixed_samples           : extension revision 1
	VK_NV_geometry_shader_passthrough         : extension revision 1
	VK_NV_inherited_viewport_scissor          : extension revision 1
	VK_NV_sample_mask_override_coverage       : extension revision 1
	VK_NV_shader_sm_builtins                  : extension revision 1
	VK_NV_shader_subgroup_partitioned         : extension revision 1
	VK_NV_viewport_array2                     : extension revision 1
	VK_NV_viewport_swizzle                    : extension revision 1

VkQueueFamilyProperties:
========================
	queueProperties[0]:
	-------------------
		minImageTransferGranularity = (1,1,1)
		queueCount                  = 16
		queueFlags                  = QUEUE_GRAPHICS | QUEUE_COMPUTE | QUEUE_TRANSFER | QUEUE_SPARSE_BINDING
		timestampValidBits          = 64
		present support             = true

	queueProperties[1]:
	-------------------
		minImageTransferGranularity = (1,1,1)
		queueCount                  = 2
		queueFlags                  = QUEUE_TRANSFER | QUEUE_SPARSE_BINDING
		timestampValidBits          = 64
		present support             = false

	queueProperties[2]:
	-------------------
		minImageTransferGranularity = (1,1,1)
		queueCount                  = 8
		queueFlags                  = QUEUE_COMPUTE | QUEUE_TRANSFER | QUEUE_SPARSE_BINDING
		timestampValidBits          = 64
		present support             = true

VkPhysicalDeviceMemoryProperties:
=================================
memoryHeaps: count = 3
	memoryHeaps[0]:
		size   = 4294967296 (0x100000000) (4.00 GiB)
		budget = 2588803072 (0x9a4e0000) (2.41 GiB)
		usage  = 0 (0x00000000) (0.00 B)
		flags: count = 1
			MEMORY_HEAP_DEVICE_LOCAL_BIT
	memoryHeaps[1]:
		size   = 24798495744 (0x5c61b0400) (23.10 GiB)
		budget = 24798495744 (0x5c61b0400) (23.10 GiB)
		usage  = 0 (0x00000000) (0.00 B)
		flags:
			None
	memoryHeaps[2]:
		size   = 257949696 (0x0f600000) (246.00 MiB)
		budget = 248971264 (0x0ed70000) (237.44 MiB)
		usage  = 8978432 (0x00890000) (8.56 MiB)
		flags: count = 1
			MEMORY_HEAP_DEVICE_LOCAL_BIT
memoryTypes: count = 11
	memoryTypes[0]:
		heapIndex     = 1
		propertyFlags = 0x0000:
			None
		usable for:
			IMAGE_TILING_OPTIMAL:
				None
			IMAGE_TILING_LINEAR:
				color images
				(non-sparse, non-transient)
	memoryTypes[1]:
		heapIndex     = 1
		propertyFlags = 0x0000:
			None
		usable for:
			IMAGE_TILING_OPTIMAL:
				color images
				(non-sparse)
			IMAGE_TILING_LINEAR:
				None
	memoryTypes[2]:
		heapIndex     = 1
		propertyFlags = 0x0000:
			None
		usable for:
			IMAGE_TILING_OPTIMAL:
				FORMAT_D16_UNORM
				(non-sparse, non-transient)
			IMAGE_TILING_LINEAR:
				None
	memoryTypes[3]:
		heapIndex     = 1
		propertyFlags = 0x0000:
			None
		usable for:
			IMAGE_TILING_OPTIMAL:
				FORMAT_X8_D24_UNORM_PACK32
				FORMAT_D24_UNORM_S8_UINT
				(non-sparse, non-transient)
			IMAGE_TILING_LINEAR:
				None
	memoryTypes[4]:
		heapIndex     = 1
		propertyFlags = 0x0000:
			None
		usable for:
			IMAGE_TILING_OPTIMAL:
				FORMAT_D32_SFLOAT
				(non-sparse, non-transient)
			IMAGE_TILING_LINEAR:
				None
	memoryTypes[5]:
		heapIndex     = 1
		propertyFlags = 0x0000:
			None
		usable for:
			IMAGE_TILING_OPTIMAL:
				FORMAT_D32_SFLOAT_S8_UINT
				(non-sparse, non-transient)
			IMAGE_TILING_LINEAR:
				None
	memoryTypes[6]:
		heapIndex     = 1
		propertyFlags = 0x0000:
			None
		usable for:
			IMAGE_TILING_OPTIMAL:
				FORMAT_S8_UINT
				(non-sparse, non-transient)
			IMAGE_TILING_LINEAR:
				None
	memoryTypes[7]:
		heapIndex     = 0
		propertyFlags = 0x0001: count = 1
			MEMORY_PROPERTY_DEVICE_LOCAL_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
			IMAGE_TILING_LINEAR:
				color images
				(non-sparse, non-transient)
	memoryTypes[8]:
		heapIndex     = 1
		propertyFlags = 0x0006: count = 2
			MEMORY_PROPERTY_HOST_VISIBLE_BIT
			MEMORY_PROPERTY_HOST_COHERENT_BIT
		usable for:
			IMAGE_TILING_OPTIMAL:
				None
			IMAGE_TILING_LINEAR:
				color images
				(non-sparse, non-transient)
	memoryTypes[9]:
		heapIndex     = 1
		propertyFlags = 0x000e: count = 3
			MEMORY_PROPERTY_HOST_VISIBLE_BIT
			MEMORY_PROPERTY_HOST_COHERENT_BIT
			MEMORY_PROPERTY_HOST_CACHED_BIT
		usable for:
			IMAGE_TILING_OPTIMAL:
				None
			IMAGE_TILING_LINEAR:
				color images
				(non-sparse, non-transient)
	memoryTypes[10]:
		heapIndex     = 2
		propertyFlags = 0x0007: count = 3
			MEMORY_PROPERTY_DEVICE_LOCAL_BIT
			MEMORY_PROPERTY_HOST_VISIBLE_BIT
			MEMORY_PROPERTY_HOST_COHERENT_BIT
		usable for:
			IMAGE_TILING_OPTIMAL:
				None
			IMAGE_TILING_LINEAR:
				color images
				(non-sparse, non-transient)

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                             = true
	wideLines                               = true
	largePoints                             = true
	alphaToOne                              = true
	multiViewport                           = true
	samplerAnisotropy                       = true
	textureCompressionETC2                  = false
	textureCompressionASTC_LDR              = false
	textureCompressionBC                    = true
	occlusionQueryPrecise                   = true
	pipelineStatisticsQuery                 = true
	vertexPipelineStoresAndAtomics          = true
	fragmentStoresAndAtomics                = true
	shaderTessellationAndGeometryPointSize  = true
	shaderImageGatherExtended               = true
	shaderStorageImageExtendedFormats       = true
	shaderStorageImageMultisample           = true
	shaderStorageImageReadWithoutFormat     = true
	shaderStorageImageWriteWithoutFormat    = true
	shaderUniformBufferArrayDynamicIndexing = true
	shaderSampledImageArrayDynamicIndexing  = true
	shaderStorageBufferArrayDynamicIndexing = true
	shaderStorageImageArrayDynamicIndexing  = true
	shaderClipDistance                      = true
	shaderCullDistance                      = true
	shaderFloat64                           = true
	shaderInt64                             = true
	shaderInt16                             = true
	shaderResourceResidency                 = true
	shaderResourceMinLod                    = true
	sparseBinding                           = true
	sparseResidencyBuffer                   = true
	sparseResidencyImage2D                  = true
	sparseResidencyImage3D                  = true
	sparseResidency2Samples                 = true
	sparseResidency4Samples                 = true
	sparseResidency8Samples                 = true
	sparseResidency16Samples                = true
	sparseResidencyAliased                  = true
	variableMultisampleRate                 = true
	inheritedQueries                        = true

VkPhysicalDevice16BitStorageFeatures:
-------------------------------------
	storageBuffer16BitAccess           = true
	uniformAndStorageBuffer16BitAccess = true
	storagePushConstant16              = true
	storageInputOutput16               = false

VkPhysicalDevice4444FormatsFeaturesEXT:
---------------------------------------
	formatA4R4G4B4 = true
	formatA4B4G4R4 = true

VkPhysicalDevice8BitStorageFeatures:
------------------------------------
	storageBuffer8BitAccess           = true
	uniformAndStorageBuffer8BitAccess = true
	storagePushConstant8              = true

VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT:
--------------------------------------------------
	advancedBlendCoherentOperations = true

VkPhysicalDeviceBufferDeviceAddressFeatures:
--------------------------------------------
	bufferDeviceAddress              = true
	bufferDeviceAddressCaptureReplay = false
	bufferDeviceAddressMultiDevice   = true

VkPhysicalDeviceBufferDeviceAddressFeaturesEXT:
-----------------------------------------------
	bufferDeviceAddress              = true
	bufferDeviceAddressCaptureReplay = false
	bufferDeviceAddressMultiDevice   = true

VkPhysicalDeviceColorWriteEnableFeaturesEXT:
--------------------------------------------
	colorWriteEnable = true

VkPhysicalDeviceConditionalRenderingFeaturesEXT:
------------------------------------------------
	conditionalRendering          = true
	inheritedConditionalRendering = true

VkPhysicalDeviceCustomBorderColorFeaturesEXT:
---------------------------------------------
	customBorderColors             = true
	customBorderColorWithoutFormat = true

VkPhysicalDeviceDepthClipEnableFeaturesEXT:
-------------------------------------------
	depthClipEnable = true

VkPhysicalDeviceDescriptorIndexingFeatures:
-------------------------------------------
	shaderInputAttachmentArrayDynamicIndexing          = true
	shaderUniformTexelBufferArrayDynamicIndexing       = true
	shaderStorageTexelBufferArrayDynamicIndexing       = true
	shaderUniformBufferArrayNonUniformIndexing         = true
	shaderSampledImageArrayNonUniformIndexing          = true
	shaderStorageBufferArrayNonUniformIndexing         = true
	shaderStorageImageArrayNonUniformIndexing          = true
	shaderInputAttachmentArrayNonUniformIndexing       = true
	shaderUniformTexelBufferArrayNonUniformIndexing    = true
	shaderStorageTexelBufferArrayNonUniformIndexing    = true
	descriptorBindingUniformBufferUpdateAfterBind      = false
	descriptorBindingSampledImageUpdateAfterBind       = true
	descriptorBindingStorageImageUpdateAfterBind       = true
	descriptorBindingStorageBufferUpdateAfterBind      = true
	descriptorBindingUniformTexelBufferUpdateAfterBind = true
	descriptorBindingStorageTexelBufferUpdateAfterBind = true
	descriptorBindingUpdateUnusedWhilePending          = true
	descriptorBindingPartiallyBound                    = true
	descriptorBindingVariableDescriptorCount           = true
	runtimeDescriptorArray                             = true

VkPhysicalDeviceExtendedDynamicState2FeaturesEXT:
-------------------------------------------------
	extendedDynamicState2                   = true
	extendedDynamicState2LogicOp            = true
	extendedDynamicState2PatchControlPoints = true

VkPhysicalDeviceExtendedDynamicStateFeaturesEXT:
------------------------------------------------
	extendedDynamicState = true

VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT:
---------------------------------------------------
	fragmentShaderSampleInterlock      = true
	fragmentShaderPixelInterlock       = true
	fragmentShaderShadingRateInterlock = true

VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT:
-----------------------------------------------
	globalPriorityQuery = true

VkPhysicalDeviceHostQueryResetFeatures:
---------------------------------------
	hostQueryReset = true

VkPhysicalDeviceImageRobustnessFeaturesEXT:
-------------------------------------------
	robustImageAccess = true

VkPhysicalDeviceImagelessFramebufferFeatures:
---------------------------------------------
	imagelessFramebuffer = true

VkPhysicalDeviceIndexTypeUint8FeaturesEXT:
------------------------------------------
	indexTypeUint8 = true

VkPhysicalDeviceInlineUniformBlockFeaturesEXT:
----------------------------------------------
	inlineUniformBlock                                 = true
	descriptorBindingInlineUniformBlockUpdateAfterBind = true

VkPhysicalDeviceLineRasterizationFeaturesEXT:
---------------------------------------------
	rectangularLines         = true
	bresenhamLines           = true
	smoothLines              = true
	stippledRectangularLines = true
	stippledBresenhamLines   = true
	stippledSmoothLines      = true

VkPhysicalDeviceMultiviewFeatures:
----------------------------------
	multiview                   = true
	multiviewGeometryShader     = true
	multiviewTessellationShader = true

VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT:
--------------------------------------------------------
	pipelineCreationCacheControl = true

VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR:
--------------------------------------------------------
	pipelineExecutableInfo = true

VkPhysicalDevicePrivateDataFeaturesEXT:
---------------------------------------
	privateData = true

VkPhysicalDeviceProtectedMemoryFeatures:
----------------------------------------
	protectedMemory = false

VkPhysicalDeviceProvokingVertexFeaturesEXT:
-------------------------------------------
	provokingVertexLast                       = true
	transformFeedbackPreservesProvokingVertex = true

VkPhysicalDeviceRobustness2FeaturesEXT:
---------------------------------------
	robustBufferAccess2 = true
	robustImageAccess2  = true
	nullDescriptor      = true

VkPhysicalDeviceSamplerYcbcrConversionFeatures:
-----------------------------------------------
	samplerYcbcrConversion = true

VkPhysicalDeviceScalarBlockLayoutFeatures:
------------------------------------------
	scalarBlockLayout = true

VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures:
----------------------------------------------------
	separateDepthStencilLayouts = true

VkPhysicalDeviceShaderAtomicFloatFeaturesEXT:
---------------------------------------------
	shaderBufferFloat32Atomics   = true
	shaderBufferFloat32AtomicAdd = true
	shaderBufferFloat64Atomics   = true
	shaderBufferFloat64AtomicAdd = true
	shaderSharedFloat32Atomics   = true
	shaderSharedFloat32AtomicAdd = true
	shaderSharedFloat64Atomics   = true
	shaderSharedFloat64AtomicAdd = true
	shaderImageFloat32Atomics    = true
	shaderImageFloat32AtomicAdd  = true
	sparseImageFloat32Atomics    = true
	sparseImageFloat32AtomicAdd  = true

VkPhysicalDeviceShaderAtomicInt64Features:
------------------------------------------
	shaderBufferInt64Atomics = true
	shaderSharedInt64Atomics = true

VkPhysicalDeviceShaderClockFeaturesKHR:
---------------------------------------
	shaderSubgroupClock = true
	shaderDeviceClock   = true

VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT:
----------------------------------------------------------
	shaderDemoteToHelperInvocation = true

VkPhysicalDeviceShaderDrawParametersFeatures:
---------------------------------------------
	shaderDrawParameters = true

VkPhysicalDeviceShaderFloat16Int8Features:
------------------------------------------
	shaderFloat16 = false
	shaderInt8    = true

VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT:
--------------------------------------------------
	shaderImageInt64Atomics = true
	sparseImageInt64Atomics = true

VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures:
----------------------------------------------------
	shaderSubgroupExtendedTypes = true

VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR:
-----------------------------------------------------
	shaderTerminateInvocation = true

VkPhysicalDeviceSubgroupSizeControlFeaturesEXT:
-----------------------------------------------
	subgroupSizeControl  = true
	computeFullSubgroups = true

VkPhysicalDeviceSynchronization2FeaturesKHR:
--------------------------------------------
	synchronization2 = true

VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT:
------------------------------------------------
	texelBufferAlignment = true

VkPhysicalDeviceTimelineSemaphoreFeatures:
------------------------------------------
	timelineSemaphore = true

VkPhysicalDeviceTransformFeedbackFeaturesEXT:
---------------------------------------------
	transformFeedback = true
	geometryStreams   = true

VkPhysicalDeviceUniformBufferStandardLayoutFeatures:
----------------------------------------------------
	uniformBufferStandardLayout = true

VkPhysicalDeviceVariablePointersFeatures:
-----------------------------------------
	variablePointersStorageBuffer = true
	variablePointers              = true

VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT:
--------------------------------------------------
	vertexAttributeInstanceRateDivisor     = true
	vertexAttributeInstanceRateZeroDivisor = true

VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT:
---------------------------------------------------
	vertexInputDynamicState = true

VkPhysicalDeviceVulkan11Features:
---------------------------------
	storageBuffer16BitAccess           = true
	uniformAndStorageBuffer16BitAccess = true
	storagePushConstant16              = true
	storageInputOutput16               = false
	multiview                          = true
	multiviewGeometryShader            = true
	multiviewTessellationShader        = true
	variablePointersStorageBuffer      = true
	variablePointers                   = true
	protectedMemory                    = false
	samplerYcbcrConversion             = true
	shaderDrawParameters               = true

VkPhysicalDeviceVulkan12Features:
---------------------------------
	samplerMirrorClampToEdge                           = true
	drawIndirectCount                                  = true
	storageBuffer8BitAccess                            = true
	uniformAndStorageBuffer8BitAccess                  = true
	storagePushConstant8                               = true
	shaderBufferInt64Atomics                           = true
	shaderSharedInt64Atomics                           = true
	shaderFloat16                                      = false
	shaderInt8                                         = true
	descriptorIndexing                                 = true
	shaderInputAttachmentArrayDynamicIndexing          = true
	shaderUniformTexelBufferArrayDynamicIndexing       = true
	shaderStorageTexelBufferArrayDynamicIndexing       = true
	shaderUniformBufferArrayNonUniformIndexing         = true
	shaderSampledImageArrayNonUniformIndexing          = true
	shaderStorageBufferArrayNonUniformIndexing         = true
	shaderStorageImageArrayNonUniformIndexing          = true
	shaderInputAttachmentArrayNonUniformIndexing       = true
	shaderUniformTexelBufferArrayNonUniformIndexing    = true
	shaderStorageTexelBufferArrayNonUniformIndexing    = true
	descriptorBindingUniformBufferUpdateAfterBind      = false
	descriptorBindingSampledImageUpdateAfterBind       = true
	descriptorBindingStorageImageUpdateAfterBind       = true
	descriptorBindingStorageBufferUpdateAfterBind      = true
	descriptorBindingUniformTexelBufferUpdateAfterBind = true
	descriptorBindingStorageTexelBufferUpdateAfterBind = true
	descriptorBindingUpdateUnusedWhilePending          = true
	descriptorBindingPartiallyBound                    = true
	descriptorBindingVariableDescriptorCount           = true
	runtimeDescriptorArray                             = true
	samplerFilterMinmax                                = true
	scalarBlockLayout                                  = true
	imagelessFramebuffer                               = true
	uniformBufferStandardLayout                        = true
	shaderSubgroupExtendedTypes                        = true
	separateDepthStencilLayouts                        = true
	hostQueryReset                                     = true
	timelineSemaphore                                  = true
	bufferDeviceAddress                                = true
	bufferDeviceAddressCaptureReplay                   = false
	bufferDeviceAddressMultiDevice                     = true
	vulkanMemoryModel                                  = true
	vulkanMemoryModelDeviceScope                       = true
	vulkanMemoryModelAvailabilityVisibilityChains      = true
	shaderOutputViewportIndex                          = true
	shaderOutputLayer                                  = true
	subgroupBroadcastDynamicId                         = true

VkPhysicalDeviceVulkanMemoryModelFeatures:
------------------------------------------
	vulkanMemoryModel                             = true
	vulkanMemoryModelDeviceScope                  = true
	vulkanMemoryModelAvailabilityVisibilityChains = true

VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR:
---------------------------------------------------------
	workgroupMemoryExplicitLayout                  = true
	workgroupMemoryExplicitLayoutScalarBlockLayout = true
	workgroupMemoryExplicitLayout8BitAccess        = true
	workgroupMemoryExplicitLayout16BitAccess       = true

VkPhysicalDeviceYcbcrImageArraysFeaturesEXT:
--------------------------------------------
	ycbcrImageArrays = true

VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR:
---------------------------------------------------------
	shaderZeroInitializeWorkgroupMemory = true




BaronVerde
Posts: 477
Joined: Wed, 16. Dec 20, 21:26
x4

Re: Linux Support (Beta)

Post by BaronVerde » Tue, 27. Jul 21, 22:48

I assume you've checked if the packages mentioned in the Arch wiki link are properly installed.

The vulkan-tools package (should be the one that included vulkaninfo) has another tool (vkcube) that simply shows a rotating cube. You can try that one to be sure vulkan is actually running and you can render something. Also install the vulkan-validation-layers package, telling the package manager to resolve dependencies automatically. When done, vulkaninfo should show the validation layers right at the top. Then try 'vkcube --validate'. If you see a rotating cube, the problem is likely with X4, if not, good luck :P

Do always use drivers and software from the repositories. I read Arch is almost as complete as Debian, so there shouldn't be any problem with missing software. Drivers may not be the latest but they will work and the package manager will take care of all dependencies and steps needed to build things. Of course, if you're familiar with boot images and kernel modules, ignore that advice :-)

hth

Code: Select all

  /l、 
゙(゚、 。 7 
 l、゙ ~ヽ   / 
 じしf_, )ノ 

User avatar
sgtnasty
Posts: 13
Joined: Mon, 4. May 20, 01:43
x4

Re: Linux Support (Beta)

Post by sgtnasty » Tue, 27. Jul 21, 23:38

BaronVerde wrote:
Tue, 27. Jul 21, 22:48
I assume you've checked if the packages mentioned in the Arch wiki link are properly installed.
Yes I checked and its alll installed.
BaronVerde wrote:
Tue, 27. Jul 21, 22:48
The vulkan-tools package (should be the one that included vulkaninfo) has another tool (vkcube) that simply shows a rotating cube. You can try that one to be sure vulkan is actually running and you can render something. Also install the vulkan-validation-layers package, telling the package manager to resolve dependencies automatically. When done, vulkaninfo should show the validation layers right at the top. Then try 'vkcube --validate'. If you see a rotating cube, the problem is likely with X4, if not, good luck :P
I see the rotating cube, it appears to be using the NVIDIA too.

Code: Select all

$ vkcube
Selected GPU 0: NVIDIA GeForce GTX 1050 Ti with Max-Q Design, type: 2
$ vkcube --validate
Selected GPU 0: NVIDIA GeForce GTX 1050 Ti with Max-Q Design, type: 2
I also tried running

Code: Select all

./X4 -log log.txt
and no text log file is generated.

https://i.imgur.com/TReyj4Y.jpg
Last edited by CBJ on Tue, 27. Jul 21, 23:42, edited 1 time in total.
Reason: Oversized image replaced with link

BaronVerde
Posts: 477
Joined: Wed, 16. Dec 20, 21:26
x4

Re: Linux Support (Beta)

Post by BaronVerde » Tue, 27. Jul 21, 23:59

Hm, what should I say :boron: , looks like it works (except the parameter to write a logfile is wrong) and you're vulkan-ready, but X4 doesn't honour it. No further tinkerer ideas from my side. If you want to rollback delete vulkan-tools and vulkan-validation-layers again.

But you're almost ready for some basic vulkan dev now, only the headers are missing :-)

Code: Select all

  /l、 
゙(゚、 。 7 
 l、゙ ~ヽ   / 
 じしf_, )ノ 

User avatar
sgtnasty
Posts: 13
Joined: Mon, 4. May 20, 01:43
x4

Re: Linux Support (Beta)

Post by sgtnasty » Wed, 28. Jul 21, 00:26

BaronVerde wrote:
Tue, 27. Jul 21, 23:59
Hm, what should I say :boron: , looks like it works (except the parameter to write a logfile is wrong) and you're vulkan-ready, but X4 doesn't honour it. No further tinkerer ideas from my side. If you want to rollback delete vulkan-tools and vulkan-validation-layers again.

But you're almost ready for some basic vulkan dev now, only the headers are missing :-)
So... what are the parameters for the command line? If there is a debug option and log I would like to run it to try to get more info. I plan to run strace on it next.

Alm888
Posts: 487
Joined: Sat, 14. Sep 19, 19:38
x4

Re: Linux Support (Beta)

Post by Alm888 » Wed, 28. Jul 21, 09:44

sgtnasty wrote:
Wed, 28. Jul 21, 00:26
So... what are the parameters for the command line? If there is a debug option and log I would like to run it to try to get more info. I plan to run strace on it next.
Well, one can attempt a "bruteforce" approach, but using the

Code: Select all

$ strings --radix=x ./X4
command is more productive. It prints all strings (or byte combinations that look like they are "strings") with corresponding positions inside the file (it is logical to assume all command line parameters are stored together or close by).
Here is one of the most interesting parts of the output:

Code: Select all

21593a4 showFPS
21593ac subtitles
21593b6 borderless
21593c1 noglow
21593c8 noshadows
21593d2 nossao
21593d9 windowed
21593e2 skipgpucheck
21593ef usefallbacktext
21593ff warnonfallbacktext
2159416 adapter
215941e capturefps
2159429 capturepath
2159435 clearstats
2159440 clearstatsandachievements
215945a confinemouse
2159467 disableallplayershiprendering
2159485 disableambientsounds
215949a disableassertions
21594ac disablecockpit
21594bb disableeffectsounds
21594cf disablemusic
21594dc disableplayershipgeometry
21594f6 disablesound
2159503 disableui
215950d disableuisounds
215951d disablevoicesounds
2159530 enablexmlvalidation
2159544 logfile
215954c mpar
2159551 noantialiasing
2159560 nocompress
215956b nocputhrottle
2159579 nodefaultlog
2159586 nosoundthrottle
2159596 notestassets
21595a3 noworkshopsync
21595b2 personalfolderid
21595c3 prefersinglefiles
21595d5 rumbleintensity
21595e5 scriptlogfiles
21595f4 showvisitornames
2159605 skipintro
215960f soundsystem
215961b mono
2159620 stereo
2159627 surround
2159638 voicelanguage
2159646 volumeambient
2159654 volumeeffects
2159662 volumemusic
215966e volumetotal
215967a volumeui
2159683 volumevoice
215968f showfps
2159697 forcehmd
21596a0 adaptivesampling
21596b1 captureformat
21596bf capturehq
21596c9 0.50
21596ce cockpitcamerascale
21596e1 collisionassist
21596f1 colorcorrection
2159701 confinemousefullscreen
2159718 sounddevice
2159724 chromaticaberration
2159738 effectdistance
2159747 fpusecameraforward
215975a forceshootatcursor
215976d gamepadmode
2159779 handle_activateapp
215978c joysticks
2159796 lodfactor
21597a0 mouselooksteering
21597b2 presentmode
21597be res_height
21597c9 res_width
21597d3 screendisplay
21597e1 showsignalleakviz
21597f3 showlongrangescanviz
2159808 shaderquality
2159816 softshadows
2159822 nosound
215982a ssrquality
2159835 stopshipinmenu
2159844 texturequality
2159853 toggleboost2
2159860 togglemouselook
2159870 trafficdensity
215987f volumetric
215988a vrfpusediscreterotation
21598a2 vrpointerhand
21598b0 vsync
21598b6 Main()
21598bd XMLInit() failed
21598ce EgoSoft
In our case the "logfile" is most probably it. One can attempt other keys (like "skipgpucheck") at one's own risk. :)

UPDATE:
The

Code: Select all

./X4 -logfile tmp.txt
command seems to attempt to produce the logfile "tmp.txt" in the "~/.config/EgoSoft/X4/" directory, but sadly is broken, as the game hangs before the screen is even properly initialized. Alas, it seems the logging is broken (in 4.00HF3 at least) and the only thing the logfile contains (in my case) is:

Code: Select all

Logfile started, time Wed Jul 28 13:10:16 2021
[General] 0.00 'GeForce GTX 1660 Ti' NVIDIA-driver v460.84.0 (Vulkan 1.2.155) check=1
[General] 0.00 'GeForce GTX 1660 Ti' NVIDIA-driver v460.84.0 (Vulkan 1.2.155) check=1

BaronVerde
Posts: 477
Joined: Wed, 16. Dec 20, 21:26
x4

Re: Linux Support (Beta)

Post by BaronVerde » Wed, 28. Jul 21, 10:22

Yeah, -logfile is what was written upthread. Btw., it hangs/waits on my pc, too (3.3HF3). I DON'T complain since we're just faffing about.

I fear @sgtnasty is alone with this one if the egosoft guys don't come around with possibilities to look for why vulkan renders but X4 doesn't. I stop the guessing game now.

Code: Select all

  /l、 
゙(゚、 。 7 
 l、゙ ~ヽ   / 
 じしf_, )ノ 

Panos
Posts: 848
Joined: Sat, 25. Oct 08, 00:48
x4

Re: Linux Support (Beta)

Post by Panos » Fri, 3. Sep 21, 11:07

Has anyone configured vkBasalt with RealSpace reshade to share the vkbasalt.conf from their X4 directory to not have to design a new one? :lol:

If not, I will make a new conf and going to post it here. :)

BaronVerde
Posts: 477
Joined: Wed, 16. Dec 20, 21:26
x4

Re: Linux Support (Beta)

Post by BaronVerde » Fri, 3. Sep 21, 12:51

Oh, just learned about it as you mentioned it.

It seems to be built as a layer, expect a performance hit depending on what and how they do stuff. If you have a juicy grapohics card it might not be that bad ...

Code: Select all

  /l、 
゙(゚、 。 7 
 l、゙ ~ヽ   / 
 じしf_, )ノ 

Panos
Posts: 848
Joined: Sat, 25. Oct 08, 00:48
x4

Re: Linux Support (Beta)

Post by Panos » Fri, 3. Sep 21, 22:32

BaronVerde wrote:
Fri, 3. Sep 21, 12:51
Oh, just learned about it as you mentioned it.

It seems to be built as a layer, expect a performance hit depending on what and how they do stuff. If you have a juicy grapohics card it might not be that bad ...
On windows the difference is 4-5fps with the 5700XT and Reshade.
When I set up the config file in the morning on Linux, and going to post it here, will tell you how much the fps difference is. :D

Panos
Posts: 848
Joined: Sat, 25. Oct 08, 00:48
x4

Re: Linux Support (Beta)

Post by Panos » Sun, 12. Sep 21, 09:01

As promised, the vkBasalt.conf file to implement RealSpace Reshade to Linux.
On my 5700XT at 2560x1440 with everything maxed out, MSAA 2x and space reflections off, the FPS dropped from 111 to 103. Few more fps drop than on Windows but considering is still fine :)

As you see I have deactivated CAS. When I find it's correct position in the effect queue I will update.
Big thank you to Misunderstood Wookiee for this original Realspace reshade configuration file (if you read this a personal thank you too) which can be found here.
https://www.nexusmods.com/x4foundations/mods/415

-----------------------------
Installations instructions
a) Instal vkbasalt and the reshade shaders to your system. For Manjaro they are on the package manager which will build them automatically
b) Write down the folders the reshade shaders & textures are in your system. By default on manjaro /home/<username>/.local/share/reshade/Shaders
(i have changes the real username)
c) create the vkbasalt.conf in the X4 directory. By default on manjaro is /home/u]<username>[/u]/.local/share/Steam/steamapps/common/X4 Foundations/
d) copy paste the code bellow
e) on Steam add a Launch option ENABLE_VKBASALT=1 %command%
If you use other launch options on Steam just add ENABLE_VKBASALT=1 anywhere before %command%


You can toggle the vkbasalt with Home key. (you can change the key is the togglekey value bellow.

If you have any queries, please quote this post to get notification :D

Enjoy.

Code: Select all

#effects is a colon seperated list of effect to use
#e.g.: effects = fxaa:cas
#effects will be run in order from left to right
#one effect can be run multiple times e.g. smaa:smaa:cas
#cas    - Contrast Adaptive Sharpening
#dls    - Denoised Luma Sharpening
#fxaa   - Fast Approximate Anti-Aliasing
#smaa   - Enhanced Subpixel Morphological Antialiasing
#lut    - Color LookUp Table

effects = vibrance:clarity:hdr:eyeadaptation:lumasharpen


vibrance = /home/[u][b]<username>[/b][/u]/.local/share/reshade/Shaders/Vibrance.fx
clarity = /home/<username>/.local/share/reshade/Shaders/Clarity.fx
hdr = /home/<username>/.local/share/reshade/Shaders/FakeHDR.fx
eyeadaptation = /home/<username>/.local/share/reshade/Shaders/EyeAdaption.fx
lumasharpen = /home/<username>/.local/share/reshade/Shaders/LumaSharpen.fx


reshadeTexturePath = "/home/<username>/.local/share/reshade/Textures"
reshadeIncludePath = "/home/<username>/.local/share/reshade/Shaders"
depthCapture = off
lut = "/home/<username>/.local/share/reshade/Textures/lut.png"


#toggleKey toggles the effects on/off
toggleKey = Home

#enableOnLaunch sets if the effects are enabled when started
enableOnLaunch = True


#casSharpness specifies the amount of sharpening in the CAS shader.
#0.0 less sharp, less artefacts, but not off
#1.0 maximum sharp more artefacts
#Everything in between is possible
#negative values sharpen even less, up to -1.0 make a visible difference
#casSharpness = 0.8f


#[AdaptiveSharpen.fx]
curveslope=0.250000f
curve_height=0.100000f
D_compr_high=0.500000f
D_compr_low=0.250000f
D_overshoot=0.009000f
L_compr_high=0.334000f
L_compr_low=0.167000f
L_overshoot=0.003000f
pm_p=0.700000f
scale_cs=0.056000f
scale_lim=0.100000f

#[AmbientLight.fx]
alAdapt=0.700000f
alAdaptBaseBlackLvL=2
alAdaptBaseMult=1.000000f
alDebug=0
alDirtInt=1.000000f
alDirtOVInt=1.000000f
alInt=10.150000f
alLensInt=2.000000f
alLensThresh=0.500000f
alThreshold=15.000000f
AL_Adaptation=1
AL_Adaptive=2
AL_Dirt=0
AL_DirtTex=0
AL_Lens=0
AL_Vibrance=0

#[CinematicDOF.fx]
AutoFocusPoint=1.000000f,1.000000f
AutoFocusTransitionSpeed=1.000000f
BlurQuality=5.000000f
BokehBusyFactor=0.500000f
FarPlaneMaxBlur=4.000000f
FNumber=11.400000f
FocalLength=15.000000f
FocusCrosshairColor=1.000000f,0.000000f,1.000000f,1.000000f
FocusPlaneColor=0.000000f,0.000000f,1.000000f
HighlightAnamorphicAlignmentFactor=0.000000f
HighlightAnamorphicFactor=1.000000f
HighlightAnamorphicSpreadFactor=0.710000f
HighlightGainFarPlane=0.500000f
HighlightGainNearPlane=0.200000f
HighlightThresholdFarPlane=0.000000f
HighlightThresholdNearPlane=0.000000f
ManualFocusPlane=16.500000f
NearPlaneMaxBlur=0.000000f
OutOfFocusPlaneColor=0.800000f,0.800000f,0.800000f
OutOfFocusPlaneColorTransparency=0.700000f
PostBlurSmoothing=0.100000f
ShowCoCValues=0
ShowOutOfFocusPlaneOnMouseDown=1
UseAutoFocus=0
UseMouseDrivenAutoFocus=0

#[Clarity.fx]
ClarityBlendIfDark=36
ClarityBlendIfLight=91
ClarityBlendMode=4
ClarityDarkIntensity=1.000000f
ClarityLightIntensity=0.300000f
ClarityOffset=2.000000f
ClarityRadius=2
ClarityStrength=0.700000f
ClarityViewBlendIfMask=0
ClarityViewMask=0

#[Colourfulness.fx]
backbuffer_bits=8.000000f
colourfulness=-0.530000f
col_noise=1
enable_dither=0
lim_luma=0.300000f

#[Curves.fx]
Contrast=0.650000f
Formula=2
Mode=1

#[DepthHaze.fx]
EffectStrength=0.700001f
FogColor=0.000001f,0.000001f,0.000001f
FogFactor=0.027000f
FogStart=0.000000f

#[EyeAdaption.fx]
fAdp_BrightenHighlights=0.200000f
fAdp_BrightenMidtones=0.050000f
fAdp_BrightenShadows=0.000000f
fAdp_DarkenHighlights=0.100000f
fAdp_DarkenMidtones=0.050000f
fAdp_DarkenShadows=2.000000f
fAdp_Delay=0.000000f
fAdp_Equilibrium=0.500000f
fAdp_Strength=1.000000f
fAdp_TriggerRadius=7.000000f
fAdp_YAxisFocalPoint=0.500000f

#[FakeHDR.fx]
HDRPower=1.499999f
radius1=0.500000f
radius2=0.600000f

#[FilmicAnamorphSharpen.fx]
Clamp=0.650000f
Coefficient=0
DepthMask=0
DepthMaskContrast=128
Offset=0.100000f
Preview=0
Strength=60.000000f
UseMask=0

#[FilmicPass.fx]
BaseCurve=1.050000f
BaseGamma=0.999993f
Bleach=0.350000f
BlueCurve=1.000000f
Contrast=1.000000f
EffectGamma=0.650000f
EffectGammaB=1.000000f
EffectGammaG=1.000000f
EffectGammaR=1.000000f
Fade=0.090000f
GreenCurve=1.000000f
Linearization=0.550000f
LumCoeff=0.212656f,0.715158f,0.072186f
RedCurve=1.100001f
Saturation=-0.210000f
Strength=0.850000f

#[FXAA.fx]
EdgeThreshold=0.125000f
EdgeThresholdMin=0.000000f
Subpix=0.250000f

#[GaussianBlur.fx]
GaussianBlurOffset=1.000000f
GaussianBlurRadius=1
GaussianBlurStrength=0.300000f

#[LightDoF.fx]
bLightDoF_AutoFocus=0
bLightDoF_UseCA=4294967295
bLightDoF_UseMouseFocus=0
f2Bokeh_AutoFocusCenter=0.500000f,0.500000f
f2LightDoF_CA=1.000000f,1.000000f
fLightDoF_Amount=10.000000f
fLightDoF_AutoFocusSpeed=1.000000f
fLightDoF_ManualFocus=0.950000f
fLightDoF_Width=1.278000f

#[LumaSharpen.fx]
offset_bias=0.230000f
pattern=3
sharp_clamp=0.058000f
sharp_strength=2.000001f
show_sharpen=0

#[MagicBloom.fx]
f2Adapt_Clip=0.000000f,1.000000f
fAdapt_Sensitivity=1.250000f
fAdapt_Speed=0.300000f
fBloom_Intensity=0.100000f
fBloom_Threshold=1.700000f
fDirt_Intensity=0.000000f
fExposure=0.520000f
iAdapt_Precision=9
iDebug=0

#[PPFX_Bloom.fx]
pBloomBlendMode=0f
pBloomCurve=1.250000f
pBloomIntensity=0.600000f
pBloomRadius=13.000000f
pBloomSaturation=2.000000f
pBloomThreshold=0.575000f
pEnableHDR=4294967295f
pEnableLensdirt=0
pLensdirtCurve=1.000000f
pLensdirtIntensity=1.000000f
pTonemapContrast=0.550000f
pTonemapCurve=3.000000f
pTonemapExposure=1.275000f
pTonemapMode=0
pTonemapSaturateBlacks=0.400000f

#[PPFX_Godrays.fx]
pGodraysExposure=0.100000f
pGodraysFalloff=1.060000f
pGodraysFreq=1.200000f
pGodraysSampleAmount=120
pGodraysSource=0.717000f,0.839000f
pGodraysThreshold=0.650000f

#[PPFX_SSDO.fx]
pSSDOAmount=0.700000f
pSSDOAngleThreshold=0.125000f
pSSDOBounceLOD=3
pSSDOBounceMultiplier=0.514000f
pSSDOBounceSaturation=0.420000f
pSSDODebugMode=0
pSSDOFadeEnd=0.370000f
pSSDOFadeStart=0.150000f
pSSDOFilterRadius=57.000000f
pSSDOIntensity=0.696000f
pSSDOSampleAmount=46
pSSDOSampleRange=70.000000f
pSSDOSourceLOD=2

#[ReflectiveBumpMapping.fx]
fRBM_BlurWidthPixels=40.000000f
fRBM_ColorMask_Blue=0.000000f
fRBM_ColorMask_Cyan=0.000000f
fRBM_ColorMask_Green=1.000000f
fRBM_ColorMask_Magenta=1.000000f
fRBM_ColorMask_Orange=1.000000f
fRBM_ColorMask_Red=1.000000f
fRBM_ColorMask_Yellow=1.000000f
fRBM_FresnelMult=0.900000f
fRBM_FresnelReflectance=0.216000f
fRBM_LowerThreshold=0.066000f
fRBM_ReliefHeight=0.500001f
fRBM_UpperThreshold=0.230000f
iRBM_SampleCount=24

#[SMAA.fx]
CornerRounding=80
DebugOutput=0
DepthEdgeDetectionThreshold=0.008000f
EdgeDetectionThreshold=0.098000f
EdgeDetectionType=1
MaxSearchSteps=16
MaxSearchStepsDiagonal=16
PredicationEnabled=0
PredicationScale=2.000000f
PredicationStrength=0.400000f
PredicationThreshold=0.010000f

#[Tonemap.fx]
Bleach=0.000000f
Defog=0.000000f
Exposure=0.000000f
FogColor=0.000000f,0.000000f,1.000000f
Gamma=1.027000f
Saturation=0.000000f

#[UIMask.fx]
bDisplayMask=0
fMask_Intensity=1.000000f

#[Vibrance.fx]
Vibrance=1.000000f
VibranceRGBBalance=0.250000f,0.000000f,0.600000f

#[Vignette.fx]
Amount=-1.000000f
Center=0.500000f,0.500000f
Radius=2.000000f
Ratio=1.000000f
Slope=2
Type=0


Akselmo
Posts: 7
Joined: Fri, 30. Nov 18, 21:28
x4

Re: Linux Support (Beta)

Post by Akselmo » Tue, 14. Sep 21, 23:52

Just to notify devs, the 4.10 isn't uploaded on GOG for Linux.

Image

Post Reply

Return to “X4: Foundations - Technical Support”