0n0w1c
November 25, 2020, 3:26pm
1
@Strit When you build the next mesa-git package, would it be possible to include the vulkan test apps as seen here ?
Edit: Hmm, but I guess this would cause a conflict with the mesa-demos package… which has not been updated in several months, so it is missing vkcube and I assume a newer version of gears which shows the driver info.
Strit
November 25, 2020, 5:18pm
2
You mean like this:
That’s been in the package for about a month.
0n0w1c
November 25, 2020, 5:37pm
3
I have not built the mesa-git package myself so I am not positive, but I wonder if [vkcube, gears] could be included here? I am looking for /usr/bin/vkcube and when I run /usr/bin/gears it does not display the driver info as it does in the video link. I assume it is an updated version of gears.
Edit: Or any other tool that displays at least the fps, so I can use it to help track the progress of the vulkan driver’s performance. (See video at 1:30 for gears and at 9:15 for vkcube.)
0n0w1c
November 25, 2020, 6:37pm
4
Ah, it would appear that a version of vkcube is in the AUR, if a little old.
https://aur.archlinux.org/packages/vkcube-git/
Maybe I can I use it. I’ll try it this evening when I am in front of my unstable version.
0n0w1c
November 25, 2020, 7:04pm
6
I’ll give it a try too, thank you.
Darksky
November 25, 2020, 7:19pm
7
I just went through a world of headaches when I was trying vulkan today. I had done an update with the stable branch yesterday. I could not get going with vulkan and discovered that glxgears was not working. I installed mesa-git from stable and unstable and no glxgears. Then I installed mesa back in stable and no glxgears.
Bottom line is the new mesa in stable is messed up and mesa-git is messed up in stable and unstable. I had to revert mesa in stable to 20.2.1-1.
extra/mesa 20.2.2-2 [installed: 20.2.1-1]
0n0w1c
November 25, 2020, 8:22pm
8
Wowza, not great news. Hopefully Sunday’s mesa-git pull with change things. Some combination of things must be working, how else could they be developing and merging the v3dv driver? (rhetorical)
Strit
November 25, 2020, 8:24pm
9
I’m pretty sure the v3dv driver is still only in master git (21.0 branch), so that does not explain why 20.2.2 does not work.
We have narrowed it down to be Raspberry Pi specific though, as the PBP has no issues on 20.2.2.
Darksky
November 25, 2020, 8:30pm
10
mesa-20.2.3-1 does not work with glxgears also.
[ray@pi4 ~]$ glxgears
Error: couldn't get an RGB, Double-buffered visual
0n0w1c
November 25, 2020, 11:24pm
11
I just updated on unstable to mesa 20.2.3-1 on the rc5 kernel and I have the v3d driver loaded and no issue with glxgears.
0n0w1c
November 25, 2020, 11:56pm
12
I just updated on unstable to mesa-git 21.0.0_devel on the rc5 kernel
$ glxinfo
OpenGL renderer string: V3D 4.2
0n0w1c
November 25, 2020, 11:59pm
13
I think this means I have vulkan support!
$ vulkaninfo
WARNING: v3dv is neither a complete nor a conformant Vulkan implementation. Testing use only.
==========
VULKANINFO
==========
Vulkan Instance Version: 1.2.159
Instance Extensions: count = 9
==============================
VK_EXT_debug_report : extension revision 9
VK_EXT_debug_utils : extension revision 2
VK_KHR_display : extension revision 23
VK_KHR_external_memory_capabilities : 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_xcb_surface : extension revision 6
VK_KHR_xlib_surface : extension revision 6
Layers: count = 2
=================
VK_LAYER_MESA_device_select (Linux device selection layer) Vulkan version 1.1.73, layer version 1:
Layer Extensions: count = 0
Devices: count = 1
GPU id = 0 (V3D 4.2)
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 (V3D 4.2)
Layer-Device Extensions: count = 0
Presentable Surfaces:
=====================
GPU id : 0 (V3D 4.2):
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 = 4
IMAGE_USAGE_TRANSFER_SRC_BIT
IMAGE_USAGE_TRANSFER_DST_BIT
IMAGE_USAGE_STORAGE_BIT
IMAGE_USAGE_COLOR_ATTACHMENT_BIT
Device Properties and Extensions:
=================================
GPU0:
-----
VkPhysicalDeviceProperties:
---------------------------
apiVersion = 4194459 (1.0.155)
driverVersion = 84291683 (0x5063063)
vendorID = 0x14e4
deviceID = 0x002a
deviceType = PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU
deviceName = V3D 4.2
VkPhysicalDeviceLimits:
-----------------------
maxImageDimension1D = 4096
maxImageDimension2D = 4096
maxImageDimension3D = 4096
maxImageDimensionCube = 4096
maxImageArrayLayers = 2048
maxTexelBufferElements = 268435456
maxUniformBufferRange = 134217728
maxStorageBufferRange = 134217728
maxPushConstantsSize = 128
maxMemoryAllocationCount = 453447
maxSamplerAllocationCount = 65536
bufferImageGranularity = 0x00000100
sparseAddressSpaceSize = 0x00000000
maxBoundDescriptorSets = 16
maxPerStageDescriptorSamplers = 16
maxPerStageDescriptorUniformBuffers = 12
maxPerStageDescriptorStorageBuffers = 12
maxPerStageDescriptorSampledImages = 16
maxPerStageDescriptorStorageImages = 4
maxPerStageDescriptorInputAttachments = 4
maxPerStageResources = 128
maxDescriptorSetSamplers = 96
maxDescriptorSetUniformBuffers = 72
maxDescriptorSetUniformBuffersDynamic = 8
maxDescriptorSetStorageBuffers = 72
maxDescriptorSetStorageBuffersDynamic = 36
maxDescriptorSetSampledImages = 96
maxDescriptorSetStorageImages = 24
maxDescriptorSetInputAttachments = 4
maxVertexInputAttributes = 16
maxVertexInputBindings = 16
maxVertexInputAttributeOffset = 4294967295
maxVertexInputBindingStride = 4294967295
maxVertexOutputComponents = 64
maxTessellationGenerationLevel = 0
maxTessellationPatchSize = 0
maxTessellationControlPerVertexInputComponents = 0
maxTessellationControlPerVertexOutputComponents = 0
maxTessellationControlPerPatchOutputComponents = 0
maxTessellationControlTotalOutputComponents = 0
maxTessellationEvaluationInputComponents = 0
maxTessellationEvaluationOutputComponents = 0
maxGeometryShaderInvocations = 0
maxGeometryInputComponents = 0
maxGeometryOutputComponents = 0
maxGeometryOutputVertices = 0
maxGeometryTotalOutputComponents = 0
maxFragmentInputComponents = 64
maxFragmentOutputAttachments = 4
maxFragmentDualSrcAttachments = 0
maxFragmentCombinedOutputResources = 20
maxComputeSharedMemorySize = 16384
maxComputeWorkGroupCount: count = 3
65535
65535
65535
maxComputeWorkGroupInvocations = 256
maxComputeWorkGroupSize: count = 3
256
256
256
subPixelPrecisionBits = 6
subTexelPrecisionBits = 8
mipmapPrecisionBits = 8
maxDrawIndexedIndexValue = 16777215
maxDrawIndirectCount = 2147483647
maxSamplerLodBias = 14
maxSamplerAnisotropy = 16
maxViewports = 1
maxViewportDimensions: count = 2
4096
4096
viewportBoundsRange: count = 2
-8192
8191
viewportSubPixelBits = 0
minMemoryMapAlignment = 4096
minTexelBufferOffsetAlignment = 0x00000100
minUniformBufferOffsetAlignment = 0x00000020
minStorageBufferOffsetAlignment = 0x00000020
minTexelOffset = -8
maxTexelOffset = 7
minTexelGatherOffset = -8
maxTexelGatherOffset = 7
minInterpolationOffset = -0.5
maxInterpolationOffset = 0.5
subPixelInterpolationOffsetBits = 6
maxFramebufferWidth = 4096
maxFramebufferHeight = 4096
maxFramebufferLayers = 256
framebufferColorSampleCounts: count = 2
SAMPLE_COUNT_1_BIT
SAMPLE_COUNT_4_BIT
framebufferDepthSampleCounts: count = 2
SAMPLE_COUNT_1_BIT
SAMPLE_COUNT_4_BIT
framebufferStencilSampleCounts: count = 2
SAMPLE_COUNT_1_BIT
SAMPLE_COUNT_4_BIT
framebufferNoAttachmentsSampleCounts: count = 2
SAMPLE_COUNT_1_BIT
SAMPLE_COUNT_4_BIT
maxColorAttachments = 4
sampledImageColorSampleCounts: count = 2
SAMPLE_COUNT_1_BIT
SAMPLE_COUNT_4_BIT
sampledImageIntegerSampleCounts: count = 2
SAMPLE_COUNT_1_BIT
SAMPLE_COUNT_4_BIT
sampledImageDepthSampleCounts: count = 2
SAMPLE_COUNT_1_BIT
SAMPLE_COUNT_4_BIT
sampledImageStencilSampleCounts: count = 2
SAMPLE_COUNT_1_BIT
SAMPLE_COUNT_4_BIT
storageImageSampleCounts: count = 1
SAMPLE_COUNT_1_BIT
maxSampleMaskWords = 1
timestampComputeAndGraphics = true
timestampPeriod = 1
maxClipDistances = 8
maxCullDistances = 0
maxCombinedClipAndCullDistances = 8
discreteQueuePriorities = 2
pointSizeRange: count = 2
0
512
lineWidthRange: count = 2
1
32
pointSizeGranularity = 0
lineWidthGranularity = 0
strictLines = true
standardSampleLocations = false
optimalBufferCopyOffsetAlignment = 0x00000020
optimalBufferCopyRowPitchAlignment = 0x00000020
nonCoherentAtomSize = 0x00000100
VkPhysicalDeviceSparseProperties:
---------------------------------
residencyStandard2DBlockShape = false
residencyStandard2DMultisampleBlockShape = false
residencyStandard3DBlockShape = false
residencyAlignedMipSize = false
residencyNonResidentStrict = false
Device Extensions: count = 6
----------------------------
VK_EXT_external_memory_dma_buf : extension revision 1
VK_EXT_private_data : extension revision 1
VK_KHR_external_memory : extension revision 1
VK_KHR_external_memory_fd : extension revision 1
VK_KHR_maintenance1 : extension revision 2
VK_KHR_swapchain : extension revision 68
VkQueueFamilyProperties:
========================
queueProperties[0]:
-------------------
minImageTransferGranularity = (1,1,1)
queueCount = 1
queueFlags = QUEUE_GRAPHICS | QUEUE_COMPUTE | QUEUE_TRANSFER
timestampValidBits = 64
present support = true
VkPhysicalDeviceMemoryProperties:
=================================
memoryHeaps: count = 1
memoryHeaps[0]:
size = 6152288256 (0x16eb47800) (5.73 GiB)
budget = 103079215104 (0x1800000000) (96.00 GiB)
usage = 103079215104 (0x1800000000) (96.00 GiB)
flags: count = 1
MEMORY_HEAP_DEVICE_LOCAL_BIT
memoryTypes: count = 1
memoryTypes[0]:
heapIndex = 0
propertyFlags = 0x0007: count = 3
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_X8_D24_UNORM_PACK32
FORMAT_D32_SFLOAT
FORMAT_D24_UNORM_S8_UINT
(non-sparse)
IMAGE_TILING_LINEAR:
color images
(non-sparse)
VkPhysicalDeviceFeatures:
=========================
robustBufferAccess = true
fullDrawIndexUint32 = false
imageCubeArray = true
independentBlend = true
geometryShader = false
tessellationShader = false
sampleRateShading = true
dualSrcBlend = false
logicOp = true
multiDrawIndirect = false
drawIndirectFirstInstance = true
depthClamp = false
depthBiasClamp = false
fillModeNonSolid = true
depthBounds = false
wideLines = true
largePoints = true
alphaToOne = true
multiViewport = false
samplerAnisotropy = true
textureCompressionETC2 = true
textureCompressionASTC_LDR = false
textureCompressionBC = false
occlusionQueryPrecise = true
pipelineStatisticsQuery = false
vertexPipelineStoresAndAtomics = true
fragmentStoresAndAtomics = true
shaderTessellationAndGeometryPointSize = false
shaderImageGatherExtended = false
shaderStorageImageExtendedFormats = true
shaderStorageImageMultisample = false
shaderStorageImageReadWithoutFormat = false
shaderStorageImageWriteWithoutFormat = false
shaderUniformBufferArrayDynamicIndexing = false
shaderSampledImageArrayDynamicIndexing = false
shaderStorageBufferArrayDynamicIndexing = false
shaderStorageImageArrayDynamicIndexing = false
shaderClipDistance = true
shaderCullDistance = false
shaderFloat64 = false
shaderInt64 = false
shaderInt16 = false
shaderResourceResidency = false
shaderResourceMinLod = false
sparseBinding = false
sparseResidencyBuffer = false
sparseResidencyImage2D = false
sparseResidencyImage3D = false
sparseResidency2Samples = false
sparseResidency4Samples = false
sparseResidency8Samples = false
sparseResidency16Samples = false
sparseResidencyAliased = false
variableMultisampleRate = false
inheritedQueries = true
VkPhysicalDevicePrivateDataFeaturesEXT:
---------------------------------------
privateData = true
0n0w1c
November 26, 2020, 12:04am
15
$ pacman -Ss mesa | grep installed
extra/glu 9.0.1-2 [installed]
extra/mesa-demos 8.4.0-4 [installed]
extra/mesa-git 21.0.0_devel.131403.5b77b14448c-1 [installed]
Edit: And vulkan-tools included vkcube, thank you. I do have a spinning cube. I am still looking for that version of gears. It shows a true fps beyond the vertical sync, which will give a quantifiable measurement to the driver’s progress.
0n0w1c
November 26, 2020, 12:49am
16
$ cat /boot/config.txt
#total_mem=4096
gpu_mem=64
initramfs initramfs-linux.img followkernel
kernel=kernel8.img
arm_64bit=1
enable_gic=1
disable_overscan=1
#enable sound
dtparam=audio=on
hdmi_drive=2
dtoverlay=disable-bt
#enable vc4
#dtoverlay=vc4-fkms-v3d
dtoverlay=vc4-kms-v3d-pi4
max_framebuffers=2
over_voltage=6
arm_freq=2000
gpu_freq=750
0n0w1c
November 26, 2020, 12:57am
17
I do have these non-repeating device errors:
[ 25.006261] vc4_hdmi fef05700.hdmi: ASoC: error at snd_soc_dai_startup on fef05700.hdmi: -19
[ 25.007368] vc4_hdmi fef05700.hdmi: ASoC: error at snd_soc_dai_startup on fef05700.hdmi: -19
[ 25.012125] vc4_hdmi fef05700.hdmi: ASoC: error at snd_soc_dai_startup on fef05700.hdmi: -19
[ 25.012485] vc4_hdmi fef05700.hdmi: ASoC: error at snd_soc_dai_startup on fef05700.hdmi: -19
[ 25.012863] vc4_hdmi fef05700.hdmi: ASoC: error at snd_soc_dai_startup on fef05700.hdmi: -19
[ 1220.338117] v3d fec00000.v3d: MMU error from client L2T (0) at 0x2fb6c00, pte invalid
Well, not continuing to repeat.
0n0w1c
November 26, 2020, 1:30am
18
@Strit I found the vulkan gears app. It is not a part of Mesa but rather a part of the Official Khronos Vulkan Samples .
Edit: I have opened a bug report with Arch Linux to have vulkan gears added to the vulkan-tools package.
1 Like
Strit
November 26, 2020, 11:31am
19
There has been a lot going on regarding Vulkan for v3d (v3dv) in mesa git lately. Hopefully it stabilizes soon.
0n0w1c
November 26, 2020, 12:08pm
20
@Darksky Just to make sure the issue is not board version specific, I was successful loading the V3D driver on a 4GB RPi4.