Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[4.0] Primusrun/pvkrun (bumblebee for Optimus discrete Nvidia GPU) crash on start (GT 650M, drivers series 390) #54261

Open
git2013vb opened this issue Oct 26, 2021 · 7 comments

Comments

@git2013vb
Copy link

Godot version

v4.0.dev.20211015.official [f113dc9]

System information

Debian 11

Issue description

Tried to use primusrun; it won't start - same error using pvkrun:

(base) vale@debianace:~/Downloads/godot_normal/Godot_v4.0-dev.20211015_linux.64$ primusrun ./Godot_v4.0-dev.20211015_linux.64 
Godot Engine v4.0.dev.20211015.official.f113dc986 - https://godotengine.org
MESA-INTEL: warning: Ivy Bridge Vulkan support is incomplete
PrimusVK: Searching for display GPU:
PrimusVK: 0xa070000: 32902;358
PrimusVK: Got integrated gpu!
PrimusVK: Device: Intel(R) HD Graphics 4000 (IVB GT2)
PrimusVK:   Type: 1
PrimusVK: Searching for render GPU:
PrimusVK: 0xa070000.
PrimusVK: 0xa2b0e80.
PrimusVK: 0xa071410.
PrimusVK: Got discrete gpu!
PrimusVK: Device: GeForce GT 650M
PrimusVK:   Type: 2
Vulkan API 1.2.162 - Using Vulkan Device #0: NVIDIA - GeForce GT 650M
PrimusVK: fetching dispatch for 0xa37f590
PrimusVK: Creating display device finished!: 0
PrimusVK: fetching dispatch for 0xa2bb030
PrimusVK: CreateDevice done
PrimusVK: Application requested 3 images.
PrimusVK: Creating Swapchain for size: 1024x600
PrimusVK: MinImageCount: 3
PrimusVK: fetching device for: 0xa2bb030
PrimusVK: FamilyIndexCount: 0
PrimusVK: Dev: 0xa37f590
PrimusVK: Swapchainfunc: 0x7f385ebde7b0
PrimusVK: >> Swapchain create done 0;0xa378740
PrimusVK: Min Images: 3
PrimusVK: Image aquiring: 3
PrimusVK: Creating image: 1024x600
PrimusVK: Creating image: 1024x600
PrimusVK: Creating image: 1024x600
PrimusVK: Creating image: 1024x600
PrimusVK: Creating image: 1024x600
PrimusVK: Creating image: 1024x600
PrimusVK: Creating image: 1024x600
PrimusVK: Creating image: 1024x600
PrimusVK: Creating image: 1024x600
PrimusVK: Creating a Swapchain thread.
PrimusVK: Count: 3
PrimusVK: >> Destroy swapchain: 0xa378740
PrimusVK: Application requested 3 images.
PrimusVK: Creating Swapchain for size: 1024x600
PrimusVK: MinImageCount: 3
PrimusVK: fetching device for: 0xa2bb030
PrimusVK: FamilyIndexCount: 0
PrimusVK: Dev: 0xa37f590
PrimusVK: Swapchainfunc: 0x7f385ebde7b0
PrimusVK: >> Swapchain create done 0;0xa378740
PrimusVK: Min Images: 3
PrimusVK: Image aquiring: 3
PrimusVK: Creating image: 1024x600
PrimusVK: Creating image: 1024x600
PrimusVK: Creating image: 1024x600
PrimusVK: Creating image: 1024x600
PrimusVK: Creating image: 1024x600
PrimusVK: Creating image: 1024x600
PrimusVK: Creating image: 1024x600
PrimusVK: Creating image: 1024x600
PrimusVK: Creating image: 1024x600
PrimusVK: Creating a Swapchain thread.
PrimusVK: Count: 3
Segmentation fault
(base) vale@debianace:~/Downloads/godot_normal/Godot_v4.0-dev.20211015_linux.64$ 

while glxgears work:
image

As mentioned in other issue I currently play dota2 with vulkan.

Steps to reproduce

execute godot with primusrun

Minimal reproduction project

NA

@git2013vb git2013vb changed the title Primusrun - segmantation fault [4.0] Primusrun - segmantation fault Oct 26, 2021
@akien-mga
Copy link
Member

while glxgears work:

glxgears uses OpenGL, that's not a valid test for Vulkan.

You should try vkcube or vulkaninfo.

@git2013vb
Copy link
Author

git2013vb commented Oct 26, 2021

while glxgears work:

glxgears uses OpenGL, that's not a valid test for Vulkan.

You should try vkcube or vulkaninfo.

Tried and I have a loong log (sorry) :) :
I'm not sure but seems the early errors are a bug as mentioned here : KhronosGroup/Vulkan-Loader#262

For the remain infos I'm not an expert for now :(

(base) vale@debianace:~$ primusrun vulkaninfo
ERROR: [Loader Message] Code 0 : /usr/lib/i386-linux-gnu/libvulkan_radeon.so: wrong ELF class: ELFCLASS32
ERROR: [Loader Message] Code 0 : /usr/lib/i386-linux-gnu/libvulkan_intel.so: wrong ELF class: ELFCLASS32
ERROR: [Loader Message] Code 0 : /usr/lib/i386-linux-gnu/libvulkan_lvp.so: wrong ELF class: ELFCLASS32
MESA-INTEL: warning: Ivy Bridge Vulkan support is incomplete
PrimusVK: Searching for display GPU:
PrimusVK: 0x563d0e310f90: 32902;358
PrimusVK: Got integrated gpu!
PrimusVK: Device: Intel(R) HD Graphics 4000 (IVB GT2)
PrimusVK:   Type: 1
PrimusVK: Searching for render GPU:
PrimusVK: 0x563d0e310f90.
PrimusVK: 0x563d0e54ecb0.
PrimusVK: 0x563d0e3110b0.
PrimusVK: Got discrete gpu!
PrimusVK: Device: GeForce GT 650M
PrimusVK:   Type: 2
PrimusVK: fetching dispatch for 0x563d0e631b30
PrimusVK: Creating display device finished!: 0
PrimusVK: fetching dispatch for 0x563d0e56d560
PrimusVK: CreateDevice done
==========
VULKANINFO
==========

Vulkan Instance Version: 1.2.162


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 21
	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 1
	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 = 8
=================
VK_LAYER_MESA_device_select (Linux device selection layer) Vulkan version 1.2.73, layer version 1:
	Layer Extensions: count = 0
	Devices: count = 1
		GPU id = 0 (GeForce GT 650M)
		Layer-Device Extensions: count = 0

VK_LAYER_MESA_overlay (Mesa Overlay layer) Vulkan version 1.1.73, layer version 1:
	Layer Extensions: count = 0
	Devices: count = 1
		GPU id = 0 (GeForce GT 650M)
		Layer-Device Extensions: count = 0

VK_LAYER_NV_optimus (NVIDIA Optimus layer) Vulkan version 1.2.155, layer version 1:
	Layer Extensions: count = 0
	Devices: count = 1
		GPU id = 0 (GeForce GT 650M)
		Layer-Device Extensions: count = 0

VK_LAYER_PRIMUS_PrimusVK (Primus-vk - https://github.com/felixdoerre/primus_vk) Vulkan version 1.2.0, layer version 1:
	Layer Extensions: count = 0
	Devices: count = 1
		GPU id = 0 (GeForce GT 650M)
		Layer-Device Extensions: count = 0

VK_LAYER_VALVE_steam_fossilize_32 (Steam Pipeline Caching Layer) Vulkan version 1.2.136, layer version 1:
	Layer Extensions: count = 0
	Devices: count = 1
		GPU id = 0 (GeForce GT 650M)
		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 = 1
		GPU id = 0 (GeForce GT 650M)
		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 = 1
		GPU id = 0 (GeForce GT 650M)
		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 = 1
		GPU id = 0 (GeForce GT 650M)
		Layer-Device Extensions: count = 0

Presentable Surfaces:
=====================
GPU id : 0 (GeForce GT 650M):
	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: count = 0
			None
	VkSurfaceProtectedCapabilitiesKHR:
	----------------------------------
		supportsProtected = false



Device Groups:
==============
Group 0:
	Properties:
		physicalDevices: count = 1
			GeForce GT 650M (ID: 0)
		subsetAllocation = 0

	Present Capabilities = Group does not support VK_KHR_device_group, skipping printing present capabilities


Device Properties and Extensions:
=================================
GPU0:
VkPhysicalDeviceProperties:
---------------------------
	apiVersion     = 4194369 (1.0.65)
	driverVersion  = 1638137856 (0x61a40000)
	vendorID       = 0x10de
	deviceID       = 0x0fd1
	deviceType     = PHYSICAL_DEVICE_TYPE_DISCRETE_GPU
	deviceName     = GeForce GT 650M

VkPhysicalDeviceLimits:
-----------------------
	maxImageDimension1D                             = 16384
	maxImageDimension2D                             = 16384
	maxImageDimension3D                             = 2048
	maxImageDimensionCube                           = 16384
	maxImageArrayLayers                             = 2048
	maxTexelBufferElements                          = 134217728
	maxUniformBufferRange                           = 65536
	maxStorageBufferRange                           = 4294967295
	maxPushConstantsSize                            = 256
	maxMemoryAllocationCount                        = 4294967295
	maxSamplerAllocationCount                       = 4000
	bufferImageGranularity                          = 0x00010000
	sparseAddressSpaceSize                          = 0xffffffffffffffff
	maxBoundDescriptorSets                          = 8
	maxPerStageDescriptorSamplers                   = 4000
	maxPerStageDescriptorUniformBuffers             = 12
	maxPerStageDescriptorStorageBuffers             = 4096
	maxPerStageDescriptorSampledImages              = 16384
	maxPerStageDescriptorStorageImages              = 16384
	maxPerStageDescriptorInputAttachments           = 8
	maxPerStageResources                            = 53268
	maxDescriptorSetSamplers                        = 4000
	maxDescriptorSetUniformBuffers                  = 72
	maxDescriptorSetUniformBuffersDynamic           = 72
	maxDescriptorSetStorageBuffers                  = 4096
	maxDescriptorSetStorageBuffersDynamic           = 16
	maxDescriptorSetSampledImages                   = 98304
	maxDescriptorSetStorageImages                   = 98304
	maxDescriptorSetInputAttachments                = 8
	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
		16384
		16384
	viewportBoundsRange: count = 2
		-32768
		32768
	viewportSubPixelBits                            = 8
	minMemoryMapAlignment                           = 64
	minTexelBufferOffsetAlignment                   = 0x00000100
	minUniformBufferOffsetAlignment                 = 0x00000100
	minStorageBufferOffsetAlignment                 = 0x00000020
	minTexelOffset                                  = -8
	maxTexelOffset                                  = 7
	minTexelGatherOffset                            = -32
	maxTexelGatherOffset                            = 31
	minInterpolationOffset                          = -0.5
	maxInterpolationOffset                          = 0.4375
	subPixelInterpolationOffsetBits                 = 4
	maxFramebufferWidth                             = 16384
	maxFramebufferHeight                            = 16384
	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 = 4
		SAMPLE_COUNT_1_BIT
		SAMPLE_COUNT_2_BIT
		SAMPLE_COUNT_4_BIT
		SAMPLE_COUNT_8_BIT
	framebufferNoAttachmentsSampleCounts: count = 4
		SAMPLE_COUNT_1_BIT
		SAMPLE_COUNT_2_BIT
		SAMPLE_COUNT_4_BIT
		SAMPLE_COUNT_8_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 = 4
		SAMPLE_COUNT_1_BIT
		SAMPLE_COUNT_2_BIT
		SAMPLE_COUNT_4_BIT
		SAMPLE_COUNT_8_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
		189.875
	lineWidthRange: count = 2
		0.5
		10
	pointSizeGranularity                            = 0.125
	lineWidthGranularity                            = 0.125
	strictLines                                     = true
	standardSampleLocations                         = true
	optimalBufferCopyOffsetAlignment                = 0x00000001
	optimalBufferCopyRowPitchAlignment              = 0x00000001
	nonCoherentAtomSize                             = 0x00000040

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

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

VkPhysicalDeviceIDPropertiesKHR:
--------------------------------
	deviceUUID      = 23cda492-7a74-3c30-1aa0-b719200b5097
	driverUUID      = c956cf01-f013-74db-79e2-17de212f1b32
	deviceNodeMask  = 1
	deviceLUIDValid = false

VkPhysicalDevicePointClippingPropertiesKHR:
-------------------------------------------
	pointClippingBehavior = POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY

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


Device Extensions: count = 33
-----------------------------
	VK_EXT_depth_range_unrestricted      : extension revision 1
	VK_EXT_discard_rectangles            : extension revision 1
	VK_EXT_display_control               : extension revision 1
	VK_EXT_shader_subgroup_ballot        : extension revision 1
	VK_EXT_shader_subgroup_vote          : extension revision 1
	VK_KHR_16bit_storage                 : extension revision 1
	VK_KHR_bind_memory2                  : extension revision 1
	VK_KHR_dedicated_allocation          : extension revision 3
	VK_KHR_descriptor_update_template    : 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_maintenance1                  : extension revision 1
	VK_KHR_maintenance2                  : 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 1
	VK_KHR_sampler_ycbcr_conversion      : 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_variable_pointers             : extension revision 1
	VK_KHX_device_group                  : extension revision 2
	VK_KHX_multiview                     : extension revision 1
	VK_NVX_device_generated_commands     : extension revision 3
	VK_NVX_multiview_per_view_attributes : extension revision 1
	VK_NV_dedicated_allocation           : extension revision 1
	VK_NV_glsl_shader                    : 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                  = 1
		queueFlags                  = QUEUE_TRANSFER
		timestampValidBits          = 64
		present support             = true

VkPhysicalDeviceMemoryProperties:
=================================
memoryHeaps: count = 2
	memoryHeaps[0]:
		size   = 2147483648 (0x80000000) (2.00 GiB)
		budget = 255 (0x000000ff) (255.00 B)
		usage  = 255 (0x000000ff) (255.00 B)
		flags: count = 1
			MEMORY_HEAP_DEVICE_LOCAL_BIT
	memoryHeaps[1]:
		size   = 12464040960 (0x2e6ea2c00) (11.61 GiB)
		budget = 34359738624 (0x800000100) (32.00 GiB)
		usage  = 34359738624 (0x800000100) (32.00 GiB)
		flags: count = 0
			None
memoryTypes: count = 11
	memoryTypes[0]:
		heapIndex     = 1
		propertyFlags = 0x0000: count = 0
			None
		usable for:
			IMAGE_TILING_OPTIMAL:
				None
			IMAGE_TILING_LINEAR:
				color images
				(non-sparse, non-transient)
	memoryTypes[1]:
		heapIndex     = 1
		propertyFlags = 0x0000: count = 0
			None
		usable for:
			IMAGE_TILING_OPTIMAL:
				color images
				(non-sparse)
			IMAGE_TILING_LINEAR:
				None
	memoryTypes[2]:
		heapIndex     = 1
		propertyFlags = 0x0000: count = 0
			None
		usable for:
			IMAGE_TILING_OPTIMAL:
				FORMAT_D16_UNORM
				(non-sparse)
			IMAGE_TILING_LINEAR:
				None
	memoryTypes[3]:
		heapIndex     = 1
		propertyFlags = 0x0000: count = 0
			None
		usable for:
			IMAGE_TILING_OPTIMAL:
				FORMAT_X8_D24_UNORM_PACK32
				FORMAT_D24_UNORM_S8_UINT
				(non-sparse)
			IMAGE_TILING_LINEAR:
				None
	memoryTypes[4]:
		heapIndex     = 1
		propertyFlags = 0x0000: count = 0
			None
		usable for:
			IMAGE_TILING_OPTIMAL:
				FORMAT_D32_SFLOAT
				(non-sparse)
			IMAGE_TILING_LINEAR:
				None
	memoryTypes[5]:
		heapIndex     = 1
		propertyFlags = 0x0000: count = 0
			None
		usable for:
			IMAGE_TILING_OPTIMAL:
				FORMAT_D32_SFLOAT_S8_UINT
				(non-sparse)
			IMAGE_TILING_LINEAR:
				None
	memoryTypes[6]:
		heapIndex     = 1
		propertyFlags = 0x0000: count = 0
			None
		usable for:
			IMAGE_TILING_OPTIMAL:
				None
			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_D24_UNORM_S8_UINT
				FORMAT_D32_SFLOAT_S8_UINT
				(non-sparse)
			IMAGE_TILING_LINEAR:
				color images
				(non-sparse, non-transient)
	memoryTypes[8]:
		heapIndex     = 0
		propertyFlags = 0x0001: count = 1
			MEMORY_PROPERTY_DEVICE_LOCAL_BIT
		usable for:
			IMAGE_TILING_OPTIMAL:
				None
			IMAGE_TILING_LINEAR:
				None
	memoryTypes[9]:
		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[10]:
		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)

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     = false
	shaderStorageImageWriteWithoutFormat    = true
	shaderUniformBufferArrayDynamicIndexing = true
	shaderSampledImageArrayDynamicIndexing  = true
	shaderStorageBufferArrayDynamicIndexing = true
	shaderStorageImageArrayDynamicIndexing  = true
	shaderClipDistance                      = true
	shaderCullDistance                      = true
	shaderFloat64                           = true
	shaderInt64                             = true
	shaderInt16                             = false
	shaderResourceResidency                 = false
	shaderResourceMinLod                    = false
	sparseBinding                           = true
	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

VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR:
--------------------------------------------------
	samplerYcbcrConversion = true

VkPhysicalDeviceVariablePointersFeaturesKHR:
--------------------------------------------
	variablePointersStorageBuffer = true
	variablePointers              = true


(base) vale@debianace:~$ 

@git2013vb
Copy link
Author

I tried Godot Engine v4.0.beta2.official.f8745f2f7
not the exactly same error but similar I guess:

(base) vale@debianace:~$ pvkrun  /home/vale/Downloads/godot_normal/Godot_v4.0-beta2_linux.x86_64
Godot Engine v4.0.beta2.official.f8745f2f7 - https://godotengine.org
MESA-INTEL: warning: Ivy Bridge Vulkan support is incomplete
PrimusVK: Searching for display GPU:
PrimusVK: 0x819cbc0: 32902;358
PrimusVK: Got integrated gpu!
PrimusVK: Device: Intel(R) HD Graphics 4000 (IVB GT2)
PrimusVK:   Type: 1
PrimusVK: Searching for render GPU:
PrimusVK: 0x819cbc0.
PrimusVK: 0x8222790.
PrimusVK: 0x7fe20e0.
PrimusVK: Got discrete gpu!
PrimusVK: Device: GeForce GT 650M
PrimusVK:   Type: 2
Vulkan API 1.2.162 - Using Vulkan Device #0: NVIDIA - GeForce GT 650M
PrimusVK: fetching dispatch for 0x82eebc0
PrimusVK: Creating display device finished!: 0
PrimusVK: fetching dispatch for 0x822a660
PrimusVK: CreateDevice done
PrimusVK: Application requested 3 images.
PrimusVK: Creating Swapchain for size: 1152x648
PrimusVK: MinImageCount: 3
PrimusVK: fetching device for: 0x822a660
PrimusVK: FamilyIndexCount: 0
PrimusVK: Dev: 0x82eebc0
PrimusVK: Swapchainfunc: 0x7fded92537b0
PrimusVK: >> Swapchain create done 0;0x7ab0150
PrimusVK: Min Images: 3
PrimusVK: Image aquiring: 3
PrimusVK: Creating image: 1152x648
PrimusVK: Creating image: 1152x648
PrimusVK: Creating image: 1152x648
PrimusVK: Creating image: 1152x648
PrimusVK: Creating image: 1152x648
PrimusVK: Creating image: 1152x648
PrimusVK: Creating image: 1152x648
PrimusVK: Creating image: 1152x648
PrimusVK: Creating image: 1152x648
PrimusVK: Creating a Swapchain thread.
PrimusVK: Count: 3

================================================================
handle_crash: Program crashed with signal 11
Engine version: Godot Engine v4.0.beta2.official (f8745f2f71c79972df66f17a3da75f6e328bc55d)
Dumping the backtrace. Please include this when reporting the bug on: https://github.com/godotengine/godot/issues
[1] /lib/x86_64-linux-gnu/libc.so.6(+0x38d60) [0x7fdede83fd60] (??:0)
-- END OF BACKTRACE --
================================================================
Aborted

If I use blender pvkrun /home/vale/blender-3.2.2-linux-x64/blender for example I have this output in terminal:

Read prefs: /home/vale/.config/blender/3.2/config/userpref.blend

Yes you read correctly. Just one row of message. And its blazing fast!

I want to remind you this:
I can use pvkrun, primusrun with ALL my graphics software I have in my Debian 11 without ANY problems.
This issue is not related to any way to my current drivers.

I guess I can use Godot 4 without NVIDIA support but It will be nice to have this bug fixed.

I don't believe that there is nobody able to take a look and fix it. What is lacking is the will to do it

Its just because I'm the only one (so far) that have this issue.

What is your rule? Until there are less than 2 people with the same problem the problem do not exist or not worth to be fixed or it can wait forever?

What I need to do in order to this issue be fixed? I have to beg someone?

Thanks

@akien-mga
Copy link
Member

Please accept that it's very difficult to debug and fix issues without being able to reproduce them. So if you can't debug it yourself, you'll have to wait for someone who can to experience this issue and fix it.

If I use blender pvkrun /home/vale/blender-3.2.2-linux-x64/blender for example I have this output in terminal:

Blender doesn't use Vulkan...

@git2013vb
Copy link
Author

Please accept that it's very difficult to debug and fix issues without being able to reproduce them. So if you can't debug it yourself, you'll have to wait for someone who can to experience this issue and fix it.

I said more than once that I'm more than happy to be a unit test for you. It will take a bit longer but is doable.
Is better than do nothing.
Also you no need to go so far to check where the problem lay. I have another issue that is related (for godot v3.x)

And that one too was abandoned.

Look how many issues I opened and are abandoned. The old one is from 2018 (4 years ago)
https://github.com/godotengine/godot/issues/created_by/git2013vb

Each time come out a new version of Godot I go to check what happen to my issues.
I tell you what happen without you need to check them: someone confirm the issue again or someone else go and change its milestone.

I 'm fair: there are some that are closed (by chance)

In the meantime I'm not able to use Godot 4 and Godot 3 with my NVIDIA card.

You tell me what the point for me to help to find issue if they won't be fixed? There is no point.

Thanks

@akien-mga
Copy link
Member

akien-mga commented Sep 30, 2022

Contributors allocate their time on their own terms, and following their own interests. It's not particularly surprising if nobody jumps on the opportunity to spend dozens of hours investigating an issue that's specific to:

  • Proprietary Nvidia drivers on Linux
  • Old Nvidia discrete chipset with outdated drivers with limited Vulkan support
  • Bumblebee wrapper which is an old and unmaintained technology providing subpar support for Optimus on Linux (no release in 10 years https://github.com/Bumblebee-Project/bumblebee - I know it well, I used to package it for a Linux distro and to use it myself with a similar laptop 5 years ago). Almost all distros now provide integrated support for Reverse PRIME that fully supersedes Bumblebee, which is also why nobody cares about Bumblebee anymore, me included.
  • Affecting a single user

If you ask me, it's just not worth it and I'd prefer to simply state that Nvidia GT 650M on Linux is not a supported device. Or possibly all the chipsets which are no longer supported by Nvidia and stuck with the outdated driver version 390 on Linux - this driver dates back to late 2017 and those were the very early days for Vulkan support, with drivers notoriously buggy. You can also see that your old Intel chipset using Mesa drivers is honest about it: MESA-INTEL: warning: Ivy Bridge Vulkan support is incomplete.

Checking your logs, it reports to have Vulkan 1.0.65 which is too low, I think Godot might require Vulkan 1.1 (to be confirmed).
We need to do better validation of what Vulkan support is present in the drivers and abort early instead of crashing.

@akien-mga akien-mga changed the title [4.0] Primusrun - segmantation fault [4.0] Primusrun/pvkrun (bumblebee for Optimus discrete Nvidia GPU) crash on start (GT 650M, drivers series 390) Sep 30, 2022
@git2013vb
Copy link
Author

git2013vb commented Oct 4, 2022

Contributors allocate their time on their own terms, and following their own interests.

Sure, But you have others who get paid.

As I said the issue was been investigated and its a regression.

It doesn't matter if is related to a old drivers as long the driver keep working and other firms keep deliver software that run with it.

In the current time where we live we need to use as much as possible the things we have. If is not broken do no change it.

If my computer work I don't see any reasons to change it because of YOUR regression bug!
And you imply to do otherwise is rude from my point of view.

So is more real to say Godot team/management do NOT care of a single user. Even when Godot team/managemet made the problem.

This is what I I think.

Thank you for your time.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants