LINUX.ORG.RU

46
Всего сообщений: 122

Осваиваемся с Vulkan

Примерно за пол-года вроде как разобрался с Vulkan.

Пишу сейчас рендерер плагин для своего графического движка

https://gitlab.com/KawaiiGraphics/KurisuRenderer

После OpenGL, для которого всё есть GLint либо GLuint, очень порадовала типизация. Также командные буферы – действительно крутая вещь – в них мало того, что можно писать из нескольких потоков (хотя и с ограничениями), так ещё и записанные однажды, они могут использоваться многократно! Возможность обеспечить более полную загрузку железа с меньшим временем на ожидание вертикальной синхронизации, например, через явное управление очередями тоже впечатляет.

В общем Vulkan в целом мне зашёл. Но есть несколько «но».

Во-первых непонятно зачем перекорёжили гомогенные координаты – ось y зачем-то направили вниз, а глубину и вовсе загнали в интервал от 0 до 1, вместо -1 до 1. Насколько я понимаю, то как направлены оси, в общем-то, ни от чего не зависит. Просто решили, что они направлены вот так и всё. А потому не ясно зачем было менять их – если бы оси были направлены как в OpenGL, можно было бы кормить Vulkan теми же матрицами и мешами, что и OpenGL без всяких плясок с бубном в шейдерах. Ну да ладно, направили оси иначе и направили.

Во-вторых и в главных – SPIRV. В OpenGL замечательная система шейдерных модулей, для которых компиляция отделена от линковки, которая позволяет приложению конструировать шейдерные программы (а в последних версиях OpenGL стадии) из функциональных взаимозаменяемых блоков. Совершенно не ясно, зачем было её херить :( В Vulkan стадии стали неделимыми, так ещё и бинарными. У нас всё ещё графический API и ли какой-нибудь уродский .NET с промежуточным байт кодом? Видимо разработчикам движков так ненавязчиво предлагается иметь некоторый набор заданных заранее семейств материалов и не давать пользователям в руки шейдеры в принципе? Но это же дно-о-о. Мы так в 90-е – 00-е вернёмся, когда был только фиксированный графический конвейер – и всё. В 20-х у нас будет чуть больше моделей освещения/затенения, парочка интересных эффектов водной поверхности, огня и т.д. Но всё так же никакой гибкости.

В общем будущее светло, но не безоблачно. Многопоточный рендеринг, кеширование сцен и возможность безбубенной многооконности, сияют, превращая ночь в день, а днём затмевая Солнце; а маячащая на горизонте возможность multi GPU через DMABUF звучит как гимн разума и изобретательности :D Но отношение Khronos к шейдерам, как минимум, настораживает..

Кто уже тоже успел повулканить? Что думаете о наступившем будущем?

 , , , ,

robus ()

Что сделать чтобы Steam увидел имеющийся в системе Vulkan? \n (ОС смесь Debian Buster/Sid/Rocm, видеокарта Radeon VII)

Смесь такая, Buster в конфигах apt указан в качестве дистра по умолчанию, а так подключены все репозитарии.

Ядро 5.4, xorg, mesa и пакеты с Vulkan взяты из Sid, остальное из Buster. Установка драйверов Rocm пожалуй качество картинки даже ухудшает, но за исключением этого видимого влияния на ситуацию и систему в целом не оказывает.

vulkaninfo пишет что у меня стоит версия Vulkan Instance Version: 1.1.126

Проблема в том, что Steam пишет что API Vulcan не то не может инициализировать, не то вообще его нету.

Что сделать со Стимом чтобы он увидел имеющийся в системе vulkan?

#Что мне пишет среди много прочего Стим при запуске:

** (steam:4641): WARNING **: Could not initialize NMClient /org/freedesktop/NetworkManager: The name org.freedesktop.NetworkManager was not provided by any .service files
Installing breakpad exception handler for appid(steam)/version(1576550254)
Installing breakpad exception handler for appid(steam)/version(1576550254)
CAppInfoCacheReadFromDiskThread took 112 milliseconds to initialize
Installing breakpad exception handler for appid(steam)/version(1576550254)
[0114/230725.297948:ERROR:sandbox_linux.cc(369)] InitializeSandbox() called with multiple threads in process gpu-process.
[0114/230725.348132:WARNING:crash_reporting.cc(286)] Failed to set crash key: UserID with value: 0
[0114/230725.348289:WARNING:crash_reporting.cc(286)] Failed to set crash key: BuildID with value: 1576515270
[0114/230725.348304:WARNING:crash_reporting.cc(286)] Failed to set crash key: SteamUniverse with value: Public
[0114/230725.348317:WARNING:crash_reporting.cc(286)] Failed to set crash key: Vendor with value: Valve
[0114/230725.349071:INFO:crash_reporting.cc(247)] Crash reporting enabled for process: utility
Fatal : VkResult is "ERROR_INITIALIZATION_FAILED" in /home/pgriffais/src/Vulkan/base/vulkanexamplebase.cpp at line 823
vulkandriverquery: /home/pgriffais/src/Vulkan/base/vulkanexamplebase.cpp:823: void VulkanExampleBase::initVulkan(): Assertion `res == VK_SUCCESS' failed.
Aborted

Драйвер Rocm

rocm-dkms/Ubuntu 16.04,now 3.0.6 amd64 [installed]

Пакеты с Vulkan

libvulkan-dev/unstable,now 1.1.126.0-2 amd64 [installed]
libvulkan-dev/unstable,now 1.1.126.0-2 i386 [installed]
libvulkan1/unstable,now 1.1.126.0-2 amd64 [installed,automatic]
libvulkan1/unstable,now 1.1.126.0-2 i386 [installed,automatic]
mesa-vulkan-drivers/unstable,now 19.3.1-4 amd64 [installed,automatic]
mesa-vulkan-drivers/unstable,now 19.3.1-4 i386 [installed]
vulkan-tools/unstable,now 1.1.126.0+dfsg1-1 i386 [installed]

Выхлоп vulkaninfo

user@host:~$ vulkaninfo
ERROR: [Loader Message] Code 0 : loader_get_json: Failed to open JSON file amd_icd64.json
ERROR: [Loader Message] Code 0 : loader_get_json: Failed to open JSON file amd_icd32.json
ERROR: [Loader Message] Code 0 : /usr/lib/x86_64-linux-gnu/libvulkan_intel.so: wrong ELF class: ELFCLASS64
ERROR: [Loader Message] Code 0 : /usr/lib/x86_64-linux-gnu/libvulkan_radeon.so: wrong ELF class: ELFCLASS64
==========
VULKANINFO
==========

Vulkan Instance Version: 1.1.126


Instance Extensions: count = 18
====================
	VK_EXT_acquire_xlib_display            : extension revision 1
	VK_EXT_debug_report                    : extension revision 8
	VK_EXT_debug_utils                     : extension revision 1
	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 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 = 2
=======
VK_LAYER_LUNARG_standard_validation (LunarG Standard Validation Layer) Vulkan version 1.0.126, layer version 1:
	Layer Extensions: count = 0
	Devices: count = 1
		GPU id 	: 0 (AMD RADV VEGA20 (LLVM 9.0.1))
		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 (AMD RADV VEGA20 (LLVM 9.0.1))
		Layer-Device Extensions: count = 0

Presentable Surfaces:
=====================
GPU id : 0 (AMD RADV VEGA20 (LLVM 9.0.1)):
	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 = 3
		PRESENT_MODE_IMMEDIATE_KHR
		PRESENT_MODE_MAILBOX_KHR
		PRESENT_MODE_FIFO_KHR
	VkSurfaceCapabilitiesKHR:
	-------------------------
		minImageCount       = 3
		maxImageCount       = 0
		currentExtent:
			width  = 256
			height = 256
		minImageExtent:
			width  = 256
			height = 256
		maxImageExtent:
			width  = 256
			height = 256
		maxImageArrayLayers = 1
		supportedTransforms:
			SURFACE_TRANSFORM_IDENTITY_BIT_KHR
		currentTransform:
			SURFACE_TRANSFORM_IDENTITY_BIT_KHR
		supportedCompositeAlpha:
			COMPOSITE_ALPHA_OPAQUE_BIT_KHR
			COMPOSITE_ALPHA_INHERIT_BIT_KHR
		supportedUsageFlags:
			IMAGE_USAGE_TRANSFER_SRC_BIT
			IMAGE_USAGE_TRANSFER_DST_BIT
			IMAGE_USAGE_SAMPLED_BIT
			IMAGE_USAGE_STORAGE_BIT
			IMAGE_USAGE_COLOR_ATTACHMENT_BIT
	VkSurfaceCapabilities2EXT:
	--------------------------
		supportedSurfaceCounters:
			None
	VkSurfaceProtectedCapabilitiesKHR:
	----------------------------------
		supportsProtected = false



Groups:
=======
	Device Group Properties (Group 0):
		physicalDeviceCount: count = 1
			AMD RADV VEGA20 (LLVM 9.0.1) (ID: 0)
		subsetAllocation = 0

	Device Group Present Capabilities (Group 0):
		AMD RADV VEGA20 (LLVM 9.0.1) (ID: 0)
		Can present images from the following devices:
			AMD RADV VEGA20 (LLVM 9.0.1) (ID: 0)
		Present modes:
			DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR


Device Properties and Extensions:
=================================
GPU0:
VkPhysicalDeviceProperties:
---------------------------
	apiVersion     = 4198507 (1.1.107)
	driverVersion  = 79704065 (0x4c03001)
	vendorID       = 0x1002
	deviceID       = 0x66af
	deviceType     = PHYSICAL_DEVICE_TYPE_DISCRETE_GPU
	deviceName     = AMD RADV VEGA20 (LLVM 9.0.1)

VkPhysicalDeviceLimits:
-----------------------
	maxImageDimension1D                             = 16384
	maxImageDimension2D                             = 16384
	maxImageDimension3D                             = 2048
	maxImageDimensionCube                           = 16384
	maxImageArrayLayers                             = 2048
	maxTexelBufferElements                          = 134217728
	maxUniformBufferRange                           = 4294967295
	maxStorageBufferRange                           = 4294967295
	maxPushConstantsSize                            = 128
	maxMemoryAllocationCount                        = 4294967295
	maxSamplerAllocationCount                       = 65536
	bufferImageGranularity                          = 0x00000040
	sparseAddressSpaceSize                          = 0xffffffff
	maxBoundDescriptorSets                          = 32
	maxPerStageDescriptorSamplers                   = 8388606
	maxPerStageDescriptorUniformBuffers             = 8388606
	maxPerStageDescriptorStorageBuffers             = 8388606
	maxPerStageDescriptorSampledImages              = 8388606
	maxPerStageDescriptorStorageImages              = 8388606
	maxPerStageDescriptorInputAttachments           = 8388606
	maxPerStageResources                            = 8388606
	maxDescriptorSetSamplers                        = 8388606
	maxDescriptorSetUniformBuffers                  = 8388606
	maxDescriptorSetUniformBuffersDynamic           = 16
	maxDescriptorSetStorageBuffers                  = 8388606
	maxDescriptorSetStorageBuffersDynamic           = 8
	maxDescriptorSetSampledImages                   = 8388606
	maxDescriptorSetStorageImages                   = 8388606
	maxDescriptorSetInputAttachments                = 8388606
	maxVertexInputAttributes                        = 32
	maxVertexInputBindings                          = 32
	maxVertexInputAttributeOffset                   = 2047
	maxVertexInputBindingStride                     = 2048
	maxVertexOutputComponents                       = 128
	maxTessellationGenerationLevel                  = 64
	maxTessellationPatchSize                        = 32
	maxTessellationControlPerVertexInputComponents  = 128
	maxTessellationControlPerVertexOutputComponents = 128
	maxTessellationControlPerPatchOutputComponents  = 120
	maxTessellationControlTotalOutputComponents     = 4096
	maxTessellationEvaluationInputComponents        = 128
	maxTessellationEvaluationOutputComponents       = 128
	maxGeometryShaderInvocations                    = 127
	maxGeometryInputComponents                      = 64
	maxGeometryOutputComponents                     = 128
	maxGeometryOutputVertices                       = 256
	maxGeometryTotalOutputComponents                = 1024
	maxFragmentInputComponents                      = 128
	maxFragmentOutputAttachments                    = 8
	maxFragmentDualSrcAttachments                   = 1
	maxFragmentCombinedOutputResources              = 8
	maxComputeSharedMemorySize                      = 32768
	maxComputeWorkGroupCount: count = 3
		65535
		65535
		65535
	maxComputeWorkGroupInvocations                  = 2048
	maxComputeWorkGroupSize: count = 3
		2048
		2048
		2048
	subPixelPrecisionBits                           = 8
	subTexelPrecisionBits                           = 8
	mipmapPrecisionBits                             = 8
	maxDrawIndexedIndexValue                        = 4294967295
	maxDrawIndirectCount                            = 4294967295
	maxSamplerLodBias                               = 16
	maxSamplerAnisotropy                            = 16
	maxViewports                                    = 16
	maxViewportDimensions: count = 2
		16384
		16384
	viewportBoundsRange: count = 2
		-32768
		32767
	viewportSubPixelBits                            = 8
	minMemoryMapAlignment                           = 4096
	minTexelBufferOffsetAlignment                   = 0x00000004
	minUniformBufferOffsetAlignment                 = 0x00000004
	minStorageBufferOffsetAlignment                 = 0x00000004
	minTexelOffset                                  = -32
	maxTexelOffset                                  = 31
	minTexelGatherOffset                            = -32
	maxTexelGatherOffset                            = 31
	minInterpolationOffset                          = -2
	maxInterpolationOffset                          = 2
	subPixelInterpolationOffsetBits                 = 8
	maxFramebufferWidth                             = 16384
	maxFramebufferHeight                            = 16384
	maxFramebufferLayers                            = 1024
	framebufferColorSampleCounts:
		SAMPLE_COUNT_1_BIT
		SAMPLE_COUNT_2_BIT
		SAMPLE_COUNT_4_BIT
		SAMPLE_COUNT_8_BIT
	framebufferDepthSampleCounts:
		SAMPLE_COUNT_1_BIT
		SAMPLE_COUNT_2_BIT
		SAMPLE_COUNT_4_BIT
		SAMPLE_COUNT_8_BIT
	framebufferStencilSampleCounts:
		SAMPLE_COUNT_1_BIT
		SAMPLE_COUNT_2_BIT
		SAMPLE_COUNT_4_BIT
		SAMPLE_COUNT_8_BIT
	framebufferNoAttachmentsSampleCounts:
		SAMPLE_COUNT_1_BIT
		SAMPLE_COUNT_2_BIT
		SAMPLE_COUNT_4_BIT
		SAMPLE_COUNT_8_BIT
	maxColorAttachments                             = 8
	sampledImageColorSampleCounts:
		SAMPLE_COUNT_1_BIT
		SAMPLE_COUNT_2_BIT
		SAMPLE_COUNT_4_BIT
		SAMPLE_COUNT_8_BIT
	sampledImageIntegerSampleCounts:
		SAMPLE_COUNT_1_BIT
	sampledImageDepthSampleCounts:
		SAMPLE_COUNT_1_BIT
		SAMPLE_COUNT_2_BIT
		SAMPLE_COUNT_4_BIT
		SAMPLE_COUNT_8_BIT
	sampledImageStencilSampleCounts:
		SAMPLE_COUNT_1_BIT
		SAMPLE_COUNT_2_BIT
		SAMPLE_COUNT_4_BIT
		SAMPLE_COUNT_8_BIT
	storageImageSampleCounts:
		SAMPLE_COUNT_1_BIT
		SAMPLE_COUNT_2_BIT
		SAMPLE_COUNT_4_BIT
		SAMPLE_COUNT_8_BIT
	maxSampleMaskWords                              = 1
	timestampComputeAndGraphics                     = true
	timestampPeriod                                 = 40
	maxClipDistances                                = 8
	maxCullDistances                                = 8
	maxCombinedClipAndCullDistances                 = 8
	discreteQueuePriorities                         = 2
	pointSizeRange: count = 2
		0
		8192
	lineWidthRange: count = 2
		0
		7.99219
	pointSizeGranularity                            = 0.125
	lineWidthGranularity                            = 0.0078125
	strictLines                                     = false
	standardSampleLocations                         = true
	optimalBufferCopyOffsetAlignment                = 0x00000080
	optimalBufferCopyRowPitchAlignment              = 0x00000080
	nonCoherentAtomSize                             = 0x00000040

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

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

VkPhysicalDeviceDepthStencilResolvePropertiesKHR:
-------------------------------------------------
	supportedDepthResolveModes:
		RESOLVE_MODE_SAMPLE_ZERO_BIT_KHR
		RESOLVE_MODE_AVERAGE_BIT_KHR
		RESOLVE_MODE_MIN_BIT_KHR
		RESOLVE_MODE_MAX_BIT_KHR
	supportedStencilResolveModes:
		RESOLVE_MODE_SAMPLE_ZERO_BIT_KHR
		RESOLVE_MODE_MIN_BIT_KHR
		RESOLVE_MODE_MAX_BIT_KHR
	independentResolveNone = true
	independentResolve     = true

VkPhysicalDeviceDescriptorIndexingPropertiesEXT:
------------------------------------------------
	maxUpdateAfterBindDescriptorsInAllPools              = 67108863
	shaderUniformBufferArrayNonUniformIndexingNative     = false
	shaderSampledImageArrayNonUniformIndexingNative      = false
	shaderStorageBufferArrayNonUniformIndexingNative     = false
	shaderStorageImageArrayNonUniformIndexingNative      = false
	shaderInputAttachmentArrayNonUniformIndexingNative   = false
	robustBufferAccessUpdateAfterBind                    = false
	quadDivergentImplicitLod                             = false
	maxPerStageDescriptorUpdateAfterBindSamplers         = 8388606
	maxPerStageDescriptorUpdateAfterBindUniformBuffers   = 8388606
	maxPerStageDescriptorUpdateAfterBindStorageBuffers   = 8388606
	maxPerStageDescriptorUpdateAfterBindSampledImages    = 8388606
	maxPerStageDescriptorUpdateAfterBindStorageImages    = 8388606
	maxPerStageDescriptorUpdateAfterBindInputAttachments = 8388606
	maxPerStageUpdateAfterBindResources                  = 8388606
	maxDescriptorSetUpdateAfterBindSamplers              = 8388606
	maxDescriptorSetUpdateAfterBindUniformBuffers        = 8388606
	maxDescriptorSetUpdateAfterBindUniformBuffersDynamic = 16
	maxDescriptorSetUpdateAfterBindStorageBuffers        = 8388606
	maxDescriptorSetUpdateAfterBindStorageBuffersDynamic = 8
	maxDescriptorSetUpdateAfterBindSampledImages         = 8388606
	maxDescriptorSetUpdateAfterBindStorageImages         = 8388606
	maxDescriptorSetUpdateAfterBindInputAttachments      = 8388606

VkPhysicalDeviceDiscardRectanglePropertiesEXT:
----------------------------------------------
	maxDiscardRectangles = 4

VkPhysicalDeviceDriverPropertiesKHR:
------------------------------------
	driverID           = DRIVER_ID_MESA_RADV_KHR
	driverName         = radv
	driverInfo         = Mesa 19.3.1 (LLVM 9.0.1)
	conformanceVersion = 1.1.2.0

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

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

VkPhysicalDeviceIDProperties:
-----------------------------
	deviceUUID      =  0000-30-00-00-000000
	driverUUID      = 414d442d-4d45-5341-2d44-52560000
	deviceNodeMask  = 0
	deviceLUIDValid = false

VkPhysicalDeviceInlineUniformBlockPropertiesEXT:
------------------------------------------------
	maxInlineUniformBlockSize                               = 4194304
	maxPerStageDescriptorInlineUniformBlocks                = 134217728
	maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks = 134217728
	maxDescriptorSetInlineUniformBlocks                     = 64
	maxDescriptorSetUpdateAfterBindInlineUniformBlocks      = 64

VkPhysicalDeviceMaintenance3Properties:
---------------------------------------
	maxPerSetDescriptors    = 22369621
	maxMemoryAllocationSize = 0xffffffff

VkPhysicalDeviceMultiviewProperties:
------------------------------------
	maxMultiviewViewCount     = 8
	maxMultiviewInstanceIndex = 2147483647

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

VkPhysicalDevicePointClippingProperties:
----------------------------------------
	pointClippingBehavior = POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES

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

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

VkPhysicalDeviceSampleLocationsPropertiesEXT:
---------------------------------------------
	sampleLocationSampleCounts:
		SAMPLE_COUNT_2_BIT
		SAMPLE_COUNT_4_BIT
		SAMPLE_COUNT_8_BIT
	maxSampleLocationGridSize:
		width  = 2
		height = 2
	sampleLocationCoordinateRange: count = 2
		0
		0.9375
	sampleLocationSubPixelBits       = 4
	variableSampleLocations          = false

VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT:
-------------------------------------------------
	filterMinmaxSingleComponentFormats = true
	filterMinmaxImageComponentMapping  = true

VkPhysicalDeviceSubgroupProperties:
-----------------------------------
	subgroupSize              = 64
	supportedStages:
		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
		SHADER_STAGE_RAYGEN_BIT_NV
		SHADER_STAGE_ANY_HIT_BIT_NV
		SHADER_STAGE_CLOSEST_HIT_BIT_NV
		SHADER_STAGE_MISS_BIT_NV
		SHADER_STAGE_INTERSECTION_BIT_NV
		SHADER_STAGE_CALLABLE_BIT_NV
		SHADER_STAGE_TASK_BIT_NV
		SHADER_STAGE_MESH_BIT_NV
	supportedOperations:
		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
	quadOperationsInAllStages = true

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

VkPhysicalDeviceTimelineSemaphorePropertiesKHR:
-----------------------------------------------
	maxTimelineSemaphoreValueDifference = 18446744073709551615

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

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


Device Extensions: count = 84
	VK_AMD_buffer_marker                  : extension revision 1
	VK_AMD_draw_indirect_count            : extension revision 1
	VK_AMD_gcn_shader                     : extension revision 1
	VK_AMD_gpu_shader_half_float          : extension revision 1
	VK_AMD_gpu_shader_int16               : extension revision 1
	VK_AMD_rasterization_order            : extension revision 1
	VK_AMD_shader_core_properties         : extension revision 1
	VK_AMD_shader_core_properties2        : extension revision 1
	VK_AMD_shader_info                    : extension revision 1
	VK_AMD_shader_trinary_minmax          : extension revision 1
	VK_EXT_buffer_device_address          : extension revision 1
	VK_EXT_calibrated_timestamps          : extension revision 1
	VK_EXT_conditional_rendering          : extension revision 1
	VK_EXT_conservative_rasterization     : extension revision 1
	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_external_memory_dma_buf        : extension revision 1
	VK_EXT_external_memory_host           : extension revision 1
	VK_EXT_global_priority                : extension revision 1
	VK_EXT_host_query_reset               : extension revision 1
	VK_EXT_index_type_uint8               : extension revision 1
	VK_EXT_inline_uniform_block           : extension revision 1
	VK_EXT_memory_budget                  : extension revision 1
	VK_EXT_memory_priority                : extension revision 1
	VK_EXT_pci_bus_info                   : extension revision 2
	VK_EXT_pipeline_creation_feedback     : extension revision 1
	VK_EXT_queue_family_foreign           : extension revision 1
	VK_EXT_sample_locations               : extension revision 1
	VK_EXT_sampler_filter_minmax          : extension revision 1
	VK_EXT_scalar_block_layout            : extension revision 1
	VK_EXT_shader_stencil_export          : extension revision 1
	VK_EXT_shader_subgroup_ballot         : extension revision 1
	VK_EXT_shader_subgroup_vote           : extension revision 1
	VK_EXT_shader_viewport_index_layer    : extension revision 1
	VK_EXT_texel_buffer_alignment         : extension revision 1
	VK_EXT_transform_feedback             : extension revision 1
	VK_EXT_vertex_attribute_divisor       : extension revision 3
	VK_EXT_ycbcr_image_arrays             : extension revision 1
	VK_GOOGLE_decorate_string             : extension revision 1
	VK_GOOGLE_hlsl_functionality1         : extension revision 1
	VK_KHR_16bit_storage                  : extension revision 1
	VK_KHR_8bit_storage                   : extension revision 1
	VK_KHR_bind_memory2                   : extension revision 1
	VK_KHR_create_renderpass2             : extension revision 1
	VK_KHR_dedicated_allocation           : extension revision 1
	VK_KHR_depth_stencil_resolve          : extension revision 1
	VK_KHR_descriptor_update_template     : extension revision 1
	VK_KHR_device_group                   : extension revision 1
	VK_KHR_draw_indirect_count            : extension revision 1
	VK_KHR_driver_properties              : extension revision 1
	VK_KHR_external_fence                 : extension revision 1
	VK_KHR_external_fence_fd              : extension revision 1
	VK_KHR_external_memory                : extension revision 1
	VK_KHR_external_memory_fd             : extension revision 1
	VK_KHR_external_semaphore             : extension revision 1
	VK_KHR_external_semaphore_fd          : extension revision 1
	VK_KHR_get_memory_requirements2       : extension revision 1
	VK_KHR_image_format_list              : extension revision 1
	VK_KHR_imageless_framebuffer          : extension revision 1
	VK_KHR_incremental_present            : extension revision 1
	VK_KHR_maintenance1                   : extension revision 1
	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 1
	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_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 1
	VK_KHR_spirv_1_4                      : extension revision 1
	VK_KHR_storage_buffer_storage_class   : extension revision 1
	VK_KHR_swapchain                      : extension revision 68
	VK_KHR_timeline_semaphore             : extension revision 2
	VK_KHR_uniform_buffer_standard_layout : extension revision 1
	VK_KHR_variable_pointers              : extension revision 1
	VK_NV_compute_shader_derivatives      : extension revision 1

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

VkQueueFamilyProperties[1]:
==========================
	minImageTransferGranularity = (1, 1, 1)
	queueCount                  = 4
	queueFlags                  = QUEUE_COMPUTE | QUEUE_TRANSFER | QUEUE_SPARSE_BINDING
	timestampValidBits          = 64
	present support:
		VK_KHR_xcb_surface  = true
		VK_KHR_xlib_surface = true

VkPhysicalDeviceMemoryProperties:
=================================
memoryHeaps: count = 3
	memoryHeaps[0]:
		size   = 16911433728 (0x3f0000000) (3.75 GiB)
		budget = 16498606080
		usage  = 0
		flags:
			MEMORY_HEAP_DEVICE_LOCAL_BIT
	memoryHeaps[1]:
		size   = 268435456 (0x10000000) (256.00 MiB)
		budget = 230658048
		usage  = 0
		flags:
			MEMORY_HEAP_DEVICE_LOCAL_BIT
	memoryHeaps[2]:
		size   = 12582395904 (0x2edf82000) (3.72 GiB)
		budget = 12529332224
		usage  = 0
		flags:
			None
memoryTypes: count = 4
	memoryTypes[0]:
		heapIndex     = 0
		propertyFlags = 0x0001:
			MEMORY_PROPERTY_DEVICE_LOCAL_BIT
		usable for:
			IMAGE_TILING_OPTIMAL: color images, FORMAT_D16_UNORM, FORMAT_D32_SFLOAT, FORMAT_S8_UINT, FORMAT_D16_UNORM_S8_UINT, FORMAT_D32_SFLOAT_S8_UINT
			IMAGE_TILING_LINEAR: color images
	memoryTypes[1]:
		heapIndex     = 2
		propertyFlags = 0x0006:
			MEMORY_PROPERTY_HOST_VISIBLE_BIT
			MEMORY_PROPERTY_HOST_COHERENT_BIT
		usable for:
			IMAGE_TILING_OPTIMAL: color images, FORMAT_D16_UNORM, FORMAT_D32_SFLOAT, FORMAT_S8_UINT, FORMAT_D16_UNORM_S8_UINT, FORMAT_D32_SFLOAT_S8_UINT
			IMAGE_TILING_LINEAR: color images
	memoryTypes[2]:
		heapIndex     = 1
		propertyFlags = 0x0007:
			MEMORY_PROPERTY_DEVICE_LOCAL_BIT
			MEMORY_PROPERTY_HOST_VISIBLE_BIT
			MEMORY_PROPERTY_HOST_COHERENT_BIT
		usable for:
			IMAGE_TILING_OPTIMAL: color images, FORMAT_D16_UNORM, FORMAT_D32_SFLOAT, FORMAT_S8_UINT, FORMAT_D16_UNORM_S8_UINT, FORMAT_D32_SFLOAT_S8_UINT
			IMAGE_TILING_LINEAR: color images
	memoryTypes[3]:
		heapIndex     = 2
		propertyFlags = 0x000e:
			MEMORY_PROPERTY_HOST_VISIBLE_BIT
			MEMORY_PROPERTY_HOST_COHERENT_BIT
			MEMORY_PROPERTY_HOST_CACHED_BIT
		usable for:
			IMAGE_TILING_OPTIMAL: color images, FORMAT_D16_UNORM, FORMAT_D32_SFLOAT, FORMAT_S8_UINT, FORMAT_D16_UNORM_S8_UINT, FORMAT_D32_SFLOAT_S8_UINT
			IMAGE_TILING_LINEAR: color images

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                 = 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

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

VkPhysicalDevice8BitStorageFeaturesKHR:
---------------------------------------
	storageBuffer8BitAccess           = true
	uniformAndStorageBuffer8BitAccess = true
	storagePushConstant8              = true

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

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

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

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

VkPhysicalDeviceHostQueryResetFeaturesEXT:
------------------------------------------
	hostQueryReset = true

VkPhysicalDeviceImagelessFramebufferFeaturesKHR:
------------------------------------------------
	imagelessFramebuffer = true

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

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

VkPhysicalDeviceMemoryPriorityFeaturesEXT:
------------------------------------------
	memoryPriority = true

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

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

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

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

VkPhysicalDeviceScalarBlockLayoutFeaturesEXT:
---------------------------------------------
	scalarBlockLayout = true

VkPhysicalDeviceShaderAtomicInt64FeaturesKHR:
---------------------------------------------
	shaderBufferInt64Atomics = true
	shaderSharedInt64Atomics = true

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

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

VkPhysicalDeviceShaderFloat16Int8FeaturesKHR:
---------------------------------------------
	shaderFloat16 = true
	shaderInt8    = true

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

VkPhysicalDeviceTimelineSemaphoreFeaturesKHR:
---------------------------------------------
	timelineSemaphore = true

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

VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR:
-------------------------------------------------------
	uniformBufferStandardLayout = true

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

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

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


 , , , ,

torvn77 ()

А как чувствует себя вулкан на нвидиа?

Кривой драйвер амдгпу для 7970 толкает на апгрейд видеокарты, думаю, обновляться на радеон новее поколением, возможно, там не так печально.
или брать нвидиа.
апд: тоже очень интересный вопрос, что меньше просаживается в вайне(протоне), хуанг или хуангетта?


вот что-то из этих:
GTX Titan Black
GTX 980 ($399.99 на Amazon)
GTX 690
GTX Titan
GTX 1060 ($264.89 на Amazon Marketplace)
GTX 970
GTX 780 Ti
GTX 780

 , , ,

darkenshvein ()

Снится ли андроидам вендекапец?

Тихо и не заметно, мягкой поступью, он подкрался откуда не ждали:

https://www.reddit.com/r/wine_gaming/comments/eic27f/detroit_become_human_benchmark_wine_vs_windows/

Теперь на линукс будут приходить геймеры из-за высоких FPS, такого природного явления не наблюдалось со времен Q3.

Для Ъ: в только что вышедшей на ПК ААА игрушке FPS в Wine/Vulkan выше чем в Windows.

 , ,

Aber ()

Имеет ли смысл изучать EGL, если есть WSI?

WSI = the Vulkan Window System Interface (WSI).

EGL - это основа Wayland, насколько я понял. А куда там втыкается WSI мне не понятно. И нужен ли мне вообще Wayland, если там есть функция для XCB.

To create a VkSurfaceKHR object for a Wayland surface, call:

VkResult vkCreateWaylandSurfaceKHR(
    VkInstance                                  instance,
    const VkWaylandSurfaceCreateInfoKHR*        pCreateInfo,
    const VkAllocationCallbacks*                pAllocator,
    VkSurfaceKHR*                               pSurface);

Хотелось бы длинный туториал, что как устанавливать, как рисовать круг, что читать и т.п.

 , ,

Einstok_Fair ()

Vulkan на десктопе

Процитирую тут топик про свежий андроид

https://www.linux.org.ru/news/android/15200633

Vulkan everywhere - Vulkan 1.1 теперь входит в требования для работы Android на 64-битных устройствах и рекомендуется для 32-битных.

Завёл отдельную тему дабы не засирать ту.

Как показывает практика, редко какой вендор станет поддерживать свой мобильный телефон дольше двух трёх лет после старта продаж. Да и сами телефоны столько не живут, за это нужно сказать спасибо несменным аккумуляторам, для которых вздуться как раз плюнуть. Так что на мобилках актуальность железа поддерживается за счет его короткого времени жизни.

Так вот если обратить свой взор на en/GB часть википедии про Vulkan то не сложно заметить что для поддержки Vulkan на актуальном GNU/Linux надо иметь штеуд Skylake (продажи с августа 2015) невидия GeForce 600 series, GeForce 700 series, Tegra K1 (март 2012) или amd Radeon R9 Series (август 2014). И это если хотите минимальные требования для Vulkan под GNU/Linux хотя и они ничего не гарантируют но с ними больше вероятность того что сабж будет жив и здоров.

Наши братья по разуму соседи по коммуналке из mac os тоже переживают смену поколений со своим Metal и там с поддержкой по сути та же картина только описано короче в скобках опять же время появления в живой природе

On iOS and tvOS, Metal supports Apple-designed SoCs from the Apple A7 (С 20 го сентября 2013 г. по 21 марта 2017 г.) or newer. On macOS, Metal supports Intel HD and Iris Graphics from the HD 4000 series(то же третее поколение Intel's HD graphics - Ivy Bridge минимум а его релиз был 24 апреля 2012) or newer, AMD GCN-based GPUs (9 января 2012), and Nvidia Kepler-based GPUs(апрель 2012) or newer.

На десктопе с Vulkan не трудно заметить закономерность - вендоры дропнули поддержку железа старше трёх четырёх лет. Да ровно так же как это, по естественным причинам, происходит на мобилках. И делается это всё для того чтоб юзер побыстрее сменил железо а вовсе не для того чтоб ему стало ВНЕЗАПНО лучше жить чем с/на Opengl.

Или это я паранойю на пустом месте? Дискасс.

 ,

init_6 ()

ACO, новый компилятор шейдеров для Radeon.

valve выпустил новый компилятор шейдеров для вулкана. Поддерживаются только Radeon GFX8 и GFX9

https://github.com/daniel-schuermann/mesa

https://steamcommunity.com/games/221410/announcements/detail/1602634609636894200

dxvk с ним работает очень плавно, без статеров вызываемых компиляцией новых шейдеров. Средний fps остается таким же, а вот минимальный сильно вырастает. Никакие переменные устанавливать не надо, он работает по умолчанию.

GFX8 GPUs
(ВНЕЗАПНО, ГСМ отдел из AMD случайно придумал новую версию GCN
и теперь вендоговну что-либо доказывать бесполезно)
"Fiji" chips, such as on the AMD Radeon R9 Fury X and Radeon Instinct MI8
"Polaris 10" chips, such as on the AMD Radeon RX 580 and Radeon Instinct MI6
"Polaris 11" chips, such as on the AMD Radeon RX 570 and Radeon Pro WX 4100
"Polaris 12" chips, such as on the AMD Radeon RX 550 and Radeon RX 540
GFX9 GPUs
"Vega 10" chips, such as on the AMD Radeon RX Vega 64 and Radeon Instinct MI25
"Vega 7nm" chips, such as on the Radeon Instinct MI50, Radeon Instinct MI60 or AMD Radeon VII

 ,

steemandlinux ()

Dota 2 + vulkan

Здравствуйте, Пользуюсь убунтой 19.04 , поставил стим играл в доту с вулкан api все было прекрасно даже идеально, габэн жирный..., прислал обнову и все покатилось к чертям, теперь 5 минут игры и дота вешает всю систему ), причем с -GL все норм играть можно, но только запускаю через вулкан начинаются карусели. все остальные игры работают адекватно, dxvk пашет идеально, уже и систему переставлял доту перекачал толку нет. может кто сталкивался с таким безобразием помогите решить.

OpenGL renderer string: AMD Radeon (TM) R9 380 Series (TONGA, DRM 3.27.0, 5.0.0-17-generic, LLVM 8.0.0) OpenGL core profile version string: 4.5 (Core Profile) Mesa 19.0.2 O OpenGL ES profile version string: OpenGL ES 3.2 Mesa 19.0.2 OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20

Решение запустить с флагом -vulkan_disable_steam_shader_cache

Благодарю why за ссылку очень помогло, нужно было зайти в папку TEAMAPPS и почистить кеш шейдеров командой find shadercache -type f -print0 | xargs -0 rm

ссылка на тему: github.com/ValveSoftware/Dota-2/issues/1619

 

kep1990 ()

Игры перестали видить драйвера vulkan

Добрый день, столкнулся с такой проблемой, на моих двух компах все игрушки что я запускаю под wine перестали вивить драйвера видеокарты vulkan, все отрабатывается на opengl. Пробовал переустанавливать wine, vulkan, x server, драйвера видеокарты, в одном случае это adm RX 580, в другом какая то не очень мощная msi. Ничего не помогает.

root@apd-pc:/# apt list --installed | grep vulkan

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

libvulkan1/cosmic,now 1.1.82.0-0ubuntu1 amd64 [установлен]
mesa-vulkan-drivers/cosmic,now 19.2~git1906161930.d72bbb~oibaf~c amd64 [установлен]
vulkan-headers/cosmic,cosmic,now 1.1.82.0-1 all [установлен]
vulkan-tools/cosmic,now 1.1.82.0+dfsg1-0ubuntu2 amd64 [установлен, автоматически]
vulkan-utils/cosmic,cosmic,now 1.1.82.0+dfsg1-0ubuntu2 all [установлен]
vulkan-validationlayers-dev/cosmic,now 1.1.82.0-0ubuntu1 amd64 [установлен]
vulkan-validationlayers/cosmic,now 1.1.82.0-0ubuntu1 amd64 [установлен]
И каждый день мне приходят обновление драйверов vulkan но так ничего не меняется.

 , ,

iliaxxx ()

Перестала запускаться dota 2

Ubuntu 18.04.2 игра запускается, но окна нет! В системном мониторе есть процесс dota2, dota.sh и сам steam видит ее запущенной. Я пытался запустить игру через консоль «steam steam://rungameid/570», вот выхлоп https://pastebin.com/2X82JYAv

В свойствах проверил файлы на целостность, все ок.

 , , ,

Vasyajjjj ()

Как использовать d9vk?

Я поставил wine-staging, vkd3d, d9vk-bin. Что теперь нужно сделать, чтобы запущенная под wine игра использовала вулканические библиотеки вместо DirectX 9?

 ,

Deleted ()

CUDA vs Vulkan Shaders

Как там Vulkan в плане вычислений на GPU, пошёл в массы со своими Compute Shaders? Что-то что у Google Compute Engine, что у Amazon, видеокарты только от NVIDIA на хостах. Означает ли это, что считают только на CUDA, Vulkan не популярен от слова вообще? И как сравнение производительности CUDA vs openCL / Vulkan?

 , , , ,

menangen ()

Wine не работает с OpenGL

Пытаюсь запустить wine под Linux Mint 19. Сам wine стартует нормально, но как только дело доходит до приложений, использующих Direct3d/directX, программа вылетает и в консоль направляется выхлоп

X Error of failed request:  BadValue (integer parameter out of range for operation)
  Major opcode of failed request:  154 (GLX)
  Minor opcode of failed request:  3 (X_GLXCreateContext)
  Value in failed request:  0x0
  Serial number of failed request:  159
  Current serial number in output stream:  160
Ошибка указывает на проблемы с openGL, но при этом glxgears и glxinfo никаких проблем не выдают. С vulkan ситуация аналогичная - wine его не видит, хотя он установлен и если тестировать его из системы напрямую, то всё прекрасно работает. Немного информации:

  • Видеокарта NVIDIA GeForce 1050 Ti, драйвер оригинальный, версия последняя.
  • Версия OpenGL 4.6.0 NVIDIA 418.56 (шла вместе с драйвером)
  • Версия Wine 4.5 staging

Напоследок прилагаю выхлоп парочки команд для отладки. Может, пригодится для решения проблемы

root@fox1432-Z370M-DS3H:~# ls -hl /usr/lib/x86*/ | grep libGL
lrwxrwxrwx  1 root root    22 апр  7 21:39 libGLdispatch.so.0 -> libGLdispatch.so.0.0.0
-rw-r--r--  1 root root  599K авг 15  2018 libGLdispatch.so.0.0.0
lrwxrwxrwx  1 root root    29 мар 23 12:00 libGLESv1_CM_nvidia.so.1 -> libGLESv1_CM_nvidia.so.418.56
-rw-r--r--  1 root root   60K мар 15 19:34 libGLESv1_CM_nvidia.so.418.56
lrwxrwxrwx  1 root root    26 мар 23 12:00 libGLESv2_nvidia.so.2 -> libGLESv2_nvidia.so.418.56
-rw-r--r--  1 root root  109K мар 15 19:35 libGLESv2_nvidia.so.418.56
lrwxrwxrwx  1 root root    18 апр  7 21:39 libGLESv2.so.2 -> libGLESv2.so.2.0.0
-rw-r--r--  1 root root   71K авг 15  2018 libGLESv2.so.2.0.0
lrwxrwxrwx  1 root root    14 апр  7 21:39 libGL.so.1 -> libGL.so.1.0.0
-rw-r--r--  1 root root  555K авг 15  2018 libGL.so.1.0.0
lrwxrwxrwx  1 root root    15 фев 11 15:40 libGLU.so.1 -> libGLU.so.1.3.1
-rw-r--r--  1 root root  443K мая 22  2016 libGLU.so.1.3.1
lrwxrwxrwx  1 root root    16 фев  9 00:02 libGLX_indirect.so.0 -> libGLX_mesa.so.0
lrwxrwxrwx  1 root root    20 фев  9 00:02 libGLX_mesa.so.0 -> libGLX_mesa.so.0.0.0
-rw-r--r--  1 root root  469K фев  9 00:02 libGLX_mesa.so.0.0.0
lrwxrwxrwx  1 root root    23 мар 23 12:00 libGLX_nvidia.so.0 -> libGLX_nvidia.so.418.56
-rw-r--r--  1 root root  1,3M мар 15 19:32 libGLX_nvidia.so.418.56
lrwxrwxrwx  1 root root    15 апр  7 21:39 libGLX.so.0 -> libGLX.so.0.0.0
-rw-r--r--  1 root root   67K авг 15  2018 libGLX.so.0.0.0
root@fox1432-Z370M-DS3H:~# glxinfo
name of display: :0
display: :0  screen: 0
direct rendering: Yes
server glx vendor string: NVIDIA Corporation
server glx version string: 1.4
server glx extensions:
    ...
client glx vendor string: NVIDIA Corporation
client glx version string: 1.4
client glx extensions:
    ...
GLX version: 1.4
GLX extensions:
    ...
Memory info (GL_NVX_gpu_memory_info):
    Dedicated video memory: 4096 MB
    Total available memory: 4096 MB
    Currently available dedicated video memory: 3799 MB
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: GeForce GTX 1050 Ti/PCIe/SSE2
OpenGL core profile version string: 4.6.0 NVIDIA 418.56
OpenGL core profile shading language version string: 4.60 NVIDIA
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
    ...
OpenGL ES profile version string: OpenGL ES 3.2 NVIDIA 418.56
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20
OpenGL ES profile extensions:
    ...
Помогите, пожалуйста, если знаете, как. А то я всё никак ответ не могу найти.

 , , ,

fox1432 ()

wine и doom 2016

Запускается, звук есть (слышно открытие меню дума и когда мышкой водишь слышно как реагируют элементы интерфейса игры), но БЕЛЫЙ ЭКРАН. Что не так? С дровами проблемы?

Debian Buster

Linux debian 4.19.0-4-amd64 #1 SMP Debian 4.19.28-2 (2019-03-15) x86_64 GNU/Linux
Vulkan Instance Version: 1.1.97

wine-4.5 (Staging)

mesa git самая последняя, самосборная. Никаких проблем нет, не замечал, видоускорение работает, игры через Steam Proton работают прекрасно (например GTA V и другие).

 , , ,

devorg ()

Гугл спасает (нет) линукс-гейминг

Гугл анонинсировал новое ненужно: стриминг игр.

Важным для лора является то, что игры рендерятся на серверах с AMD + Vulkan + Linux.

 , ,

RazrFalcon ()

Mesa3d vulkan непонятные подгрузки в играх

Ребята всем привет, у меня проблема с непонятной подгрузкой в играх, железки :video r9 380 , cpu fx4100 = 4.2Ггц 8gb ddr 3, стоит убунту 18.04 с открытыми драйверами mesa 19 , начнем с дота 2, первые 2-3 игры лаги потом все хорошо ииграется без проблем, на форумах нарыл что это кешируются шейдеры, хотя на винде с тем же вулканом никаких лагов не было, ну дота это ладно, проблема с dxvk, как вы понимаете тут участвует вулкан и игры через этот вулкат тоже я так понимаю кешируют что то там, но это очень выбешивает потому как лаги сумашедшие, причем где я уже бывал игра плавно идет но как только появляется что то новенькое опять лаги, и когда игру перезапустить все начинаеться с начала и опять лаг. на драйверах от amd такого не было, но там установить их это нужно чуть ли не фазы лун соблюдать гемор тот еще. что не так с mesa почему такие подгрузки непонятные, как это исправить ??

Вердикт : в vulkan, fx4100 одновременно просчитать игру и компилировать шейдеры не способен отсюда и лаги.

16.03.2019 Вердикт 2 : все решилось когда перешел на вейланд и поставил ядро с этого сайта liquorix.net ) лаги исчезли, даже тиринга нет которы ранее мучал меня ) и еще в папке с игрой был файл archeage.dxvk-cache и он почему то был только на чтение, разрешил запись .

 , ,

kep1990 ()

debian гибридная графика и vulkan

Доброго времени суток.

Возник вопрос об использовании видеокарты nvidia совместно с vulkan'ом на ноутбке с дебиан. Использую bumblebee - все хорошо и замечательно, но это касается только OpenGL. Насколько я понимаю, шмель из коробки не дружит с vulkan api и при попытке установить nvidia-vulkan, слетают какие-то шмелевские пакеты + primusrun отказывается работать. Слышал о пакете Nvidia Prime, однако, на сколько я понял, это счастье только для пользователей Ubuntu. Возможно кто знает как «подружить» vulkan с шмелем? Или же есть какие-то альтернативные способы запуска дискретной карты? Полностью пересесть c иглы optimus'a на лицо дискретки не самый лучший вариант.

Буду крайне признателен за совет!

OS: debian 9

 , ,

lolickn ()

Проблема с steam при обновлении драйверов

ubuntu 18.04 64-bit, geforce gtx 1050 ti.

Перестала запускатьcя игра в стиме с поддержкой vulkan, обновил драйвер с 390 версии на 410 с оф сайта. Перестал запускаться стим вовсе с такой ошибкой: https://pastebin.com/EVDWrns2

Как решить проблему?

 , , ,

mixpix ()

Vulkan, wine.

Intel 620, nvidia 1050. Ноутбук, генту.

diver@calculate ~/GOG Games/World of Warcraft/_retail_ $ env DXVK_HUD=fps,info DXVK_FAKE_DX10_SUPPORT=1 env WINEDEBUG=-all STAGING_SHARED_MEMORY=1 STAGING_WRITECOPY=1 nice -20 primusrun wine Wow.exe
info:  Game: Wow.exe
info:  DXVK: v0.96
warn:  OpenVR: Failed to locate module
wine: Call from 0x7bc5c61c to unimplemented function vulkan-1.dll.vkGetInstanceProcAddr, aborting
0x80000100 (unknown exception) at 000000007bc5c61c : error 132: ERROR #132 (0x85100084) Fatal exception!
 

diver@calculate ~/GOG Games/World of Warcraft/_retail_ $ env DXVK_HUD=fps,info DXVK_FAKE_DX10_SUPPORT=1 env WINEDEBUG=-all STAGING_SHARED_MEMORY=1 STAGING_WRITECOPY=1 nice -20 wine Wow.exe
info:  Game: Wow.exe
info:  DXVK: v0.96
warn:  OpenVR: Failed to locate module
wine: Call from 0x7bc5c61c to unimplemented function vulkan-1.dll.vkGetInstanceProcAddr, aborting
0x80000100 (unknown exception) at 000000007bc5c61c : error 132: ERROR #132 (0x85100084) Fatal exception!
 

diver@calculate ~/GOG Games/World of Warcraft/_retail_ $ 

Куда копать то?

 , ,

LightDiver ()

Почему бы сообществу не сделать шлем с лазерным гироскопом?

Как известно, какая-то фирма, вроде как Майкрософт запатентовала гироскоп который берётся в руку человеком или крепится к какой либо части его тела.
Это привело к тому что HTC и прочие производители VR шлемов вынуждены вместо позиционирования с помощью гироскопа извращаться с позиционированием на инфракрасных датчиках.

Но мы то, опенсорсное сообщество в отличии от проприетарщиков можем обходить патентные ограничения перекладывая их нарушение на конечного пользователя, как это обычно делается с проприетарными драйверами и библиотеками когда само нарушение патентов и лицензий совершается самим пользователем на его пользовательском компьютере.

Что мешает сделать отдельно в открытых игровых движках считывание из HAL положения и ориентации головы, рук и пр. отдельно драйвер трёхмерной гироскопической системы и соответствующего устройства которое пользователь сам будет лепить скотчем к шлемофону и куда ещё сочтёт нужным.

Лазерный жде гироскоп потому, что его проще всего сделать, как я понимаю его можно создать просто намотав на катушку два оптоволокна пустив по ним свет в противоположных направлениях, а потом замеряя контролёром разницу прохождения их фронтом светового импульса.

У кого какаи мысли по этому поводу?

И ещё, насколько реально сделать поддержку создания стереоизображения для VR шлема прямо в опенсорсном драйвере?

 , , ,

torvn77 ()