# Zink | Build & bringup info ## System OS info ``` rpi4 5.11.0-1017-raspi #18-Ubuntu SMP PREEMPT Mon Aug 23 07:34:31 UTC 2021 aarch64 aarch64 aarch64 GNU/Linux ``` ## Build Commands ``` git clone -b zink-wip https://gitlab.freedesktop.org/zmike/mesa.git EXTRA_PARAM="-mcpu=cortex-a72 -mfpu=neon-fp-armv8 -mfloat-abi=hard" \ meson --prefix /home/kanthasiva/myutils/mesa-zmike/mesa-wip-zink-install \ --libdir lib -D platforms=x11 \ -D vulkan-drivers=broadcom -D dri-drivers= \ -D gallium-drivers=v3d,kmsro,vc4,zink,virgl \ -D buildtype=release -D c_args="$EXTRA_PARAM" -D cpp_args="$EXTRA_PARAM" \ build-wip-zink ninja -C build-wip-zink -j 4 sudo ninja -C build-wip-zink install ``` ## Launch script ``` cat ~/myutils/local/bin/zmike-zink-run.sh #!/bin/sh ZINKENV=/home/kanthasiva/myutils/mesa-zmike/mesa-wip-zink-install LIB64=$ZINKENV/lib export LIBGL_DEBUG=verbose export LD_LIBRARY_PATH=$LIB64/ export LIBGL_DRIVERS_PATH=$LIB64/dri export MESA_LOADER_DRIVER_OVERRIDE=zink export VK_ICD_FILENAMES=$ZINKENV/share/vulkan/icd.d/broadcom_icd.aarch64.json exec "$@" ``` ## Test with vkcube ``` clear && ~/myutils/local/bin/zmike-zink-run.sh vkcube ``` ![](https://i.imgur.com/077hymR.png) ## `clear && ~/myutils/local/bin/zmike-zink-run.sh glxinfo -B` ``` name of display: :0 libGL: Can't open configuration file /home/kanthasiva/myutils/mesa-zmike/mesa-wip-zink-install/etc/drirc: No such file or directory. libGL: MESA-LOADER: dlopen(/home/kanthasiva/myutils/mesa-zmike/mesa-wip-zink-install/lib/dri/zink_dri.so) libGL: Can't open configuration file /home/kanthasiva/myutils/mesa-zmike/mesa-wip-zink-install/etc/drirc: No such file or directory. WARNING: Some incorrect rendering might occur because the selected Vulkan device (V3D 4.2) doesn't support base Zink requirements: have_EXT_line_rasterization libGL: Can't open configuration file /home/kanthasiva/myutils/mesa-zmike/mesa-wip-zink-install/etc/drirc: No such file or directory. libGL error: Version 7 or imageFromFds image extension not found libGL error: failed to load driver: zink scalarBlockLayout OR EXT_scalar_block_layout libGL: MESA-LOADER: dlopen(/home/kanthasiva/myutils/mesa-zmike/mesa-wip-zink-install/lib/dri/zink_dri.so) libGL: Can't open configuration file /home/kanthasiva/myutils/mesa-zmike/mesa-wip-zink-install/etc/drirc: No such file or directory. WARNING: Some incorrect rendering might occur because the selected Vulkan device (V3D 4.2) doesn't support base Zink requirements: have_EXT_line_rasterization libGL: Can't open configuration file /home/kanthasiva/myutils/mesa-zmike/mesa-wip-zink-install/etc/drirc: No such file or directory. libGL: Using DRI2 for screen 0 scalarBlockLayout OR EXT_scalar_block_layout display: :0 screen: 0 direct rendering: Yes Extended renderer info (GLX_MESA_query_renderer): Vendor: Collabora Ltd (0x14e4) Device: zink (V3D 4.2) (0xbe485fd3) Version: 21.3.0 Accelerated: yes Video memory: 5818MB Unified memory: yes Preferred profile: compat (0x2) Max core profile version: 0.0 Max compat profile version: 2.1 Max GLES1 profile version: 1.1 Max GLES[23] profile version: 2.0 Memory info (GL_ATI_meminfo): VBO free memory - total: 5818 MB, largest block: 5818 MB VBO free aux. memory - total: 0 MB, largest block: 0 MB Texture free memory - total: 5818 MB, largest block: 5818 MB Texture free aux. memory - total: 0 MB, largest block: 0 MB Renderbuffer free memory - total: 5818 MB, largest block: 5818 MB Renderbuffer free aux. memory - total: 0 MB, largest block: 0 MB Memory info (GL_NVX_gpu_memory_info): Dedicated video memory: 5818 MB Total available memory: 5818 MB Currently available dedicated video memory: 5818 MB OpenGL vendor string: Collabora Ltd OpenGL renderer string: zink (V3D 4.2) OpenGL version string: 2.1 Mesa 21.3.0-devel (git-d69687178b) OpenGL shading language version string: 1.20 OpenGL ES profile version string: OpenGL ES 2.0 Mesa 21.3.0-devel (git-d69687178b) OpenGL ES profile shading language version string: OpenGL ES GLSL ES 1.0.16 ``` ## vulkaninfo ```sh vulkaninfo WARNING: lavapipe is not a conformant vulkan implementation, testing use only. ========== 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 10 VK_EXT_debug_utils : extension revision 2 VK_EXT_direct_mode_display : extension revision 1 VK_EXT_display_surface_counter : extension revision 1 VK_KHR_device_group_creation : extension revision 1 VK_KHR_display : extension revision 23 VK_KHR_external_fence_capabilities : extension revision 1 VK_KHR_external_memory_capabilities : extension revision 1 VK_KHR_external_semaphore_capabilities : extension revision 1 VK_KHR_get_display_properties2 : extension revision 1 VK_KHR_get_physical_device_properties2 : extension revision 2 VK_KHR_get_surface_capabilities2 : extension revision 1 VK_KHR_surface : extension revision 25 VK_KHR_surface_protected_capabilities : extension revision 1 VK_KHR_wayland_surface : extension revision 6 VK_KHR_xcb_surface : extension revision 6 VK_KHR_xlib_surface : extension revision 6 Layers: count = 3 ================= VK_LAYER_KHRONOS_validation (Khronos Validation Layer) Vulkan version 1.2.162, layer version 1: Layer Extensions: count = 3 VK_EXT_debug_report : extension revision 9 VK_EXT_debug_utils : extension revision 1 VK_EXT_validation_features : extension revision 2 Devices: count = 2 GPU id = 0 (V3D 4.2) Layer-Device Extensions: count = 3 VK_EXT_debug_marker : extension revision 4 VK_EXT_tooling_info : extension revision 1 VK_EXT_validation_cache : extension revision 1 GPU id = 1 (llvmpipe (LLVM 12.0.0, 128 bits)) Layer-Device Extensions: count = 3 VK_EXT_debug_marker : extension revision 4 VK_EXT_tooling_info : extension revision 1 VK_EXT_validation_cache : extension revision 1 VK_LAYER_MESA_device_select (Linux device selection layer) Vulkan version 1.2.73, layer version 1: Layer Extensions: count = 0 Devices: count = 2 GPU id = 0 (V3D 4.2) Layer-Device Extensions: count = 0 GPU id = 1 (llvmpipe (LLVM 12.0.0, 128 bits)) 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 = 2 GPU id = 0 (V3D 4.2) Layer-Device Extensions: count = 0 GPU id = 1 (llvmpipe (LLVM 12.0.0, 128 bits)) 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 VkSurfaceCapabilities2EXT: -------------------------- supportedSurfaceCounters: count = 0 None VkSurfaceProtectedCapabilitiesKHR: ---------------------------------- supportsProtected = false GPU id : 1 (llvmpipe (LLVM 12.0.0, 128 bits)): Surface types: count = 2 VK_KHR_xcb_surface VK_KHR_xlib_surface Formats: count = 2 SurfaceFormat[0]: format = FORMAT_B8G8R8A8_SRGB colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR SurfaceFormat[1]: format = FORMAT_B8G8R8A8_UNORM colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR Present Modes: count = 4 PRESENT_MODE_IMMEDIATE_KHR PRESENT_MODE_MAILBOX_KHR PRESENT_MODE_FIFO_KHR PRESENT_MODE_FIFO_RELAXED_KHR VkSurfaceCapabilitiesKHR: ------------------------- minImageCount = 3 maxImageCount = 0 currentExtent: width = 256 height = 256 minImageExtent: width = 256 height = 256 maxImageExtent: width = 256 height = 256 maxImageArrayLayers = 1 supportedTransforms: count = 1 SURFACE_TRANSFORM_IDENTITY_BIT_KHR currentTransform = SURFACE_TRANSFORM_IDENTITY_BIT_KHR supportedCompositeAlpha: count = 2 COMPOSITE_ALPHA_OPAQUE_BIT_KHR COMPOSITE_ALPHA_INHERIT_BIT_KHR supportedUsageFlags: count = 5 IMAGE_USAGE_TRANSFER_SRC_BIT IMAGE_USAGE_TRANSFER_DST_BIT IMAGE_USAGE_SAMPLED_BIT IMAGE_USAGE_STORAGE_BIT IMAGE_USAGE_COLOR_ATTACHMENT_BIT VkSurfaceCapabilities2EXT: -------------------------- supportedSurfaceCounters: count = 0 None VkSurfaceProtectedCapabilitiesKHR: ---------------------------------- supportsProtected = false Device Groups: ============== Group 0: Properties: physicalDevices: count = 1 llvmpipe (LLVM 12.0.0, 128 bits) (ID: 0) subsetAllocation = 0 WARNING: lavapipe is not a conformant vulkan implementation, testing use only. Present Capabilities: llvmpipe (LLVM 12.0.0, 128 bits) (ID: 0): Can present images from the following devices: count = 1 llvmpipe (LLVM 12.0.0, 128 bits) (ID: 0) Present modes: count = 1 DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR Group 1: Properties: physicalDevices: count = 1 V3D 4.2 (ID: 0) subsetAllocation = 0 Present Capabilities: V3D 4.2 (ID: 0): Can present images from the following devices: count = 1 V3D 4.2 (ID: 0) Present modes: count = 1 DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR Device Properties and Extensions: ================================= GPU0: VkPhysicalDeviceProperties: --------------------------- apiVersion = 4194494 (1.0.190) driverVersion = 88088675 (0x5402063) vendorID = 0x14e4 deviceID = 0xbe485fd3 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 = 440927 maxSamplerAllocationCount = 65536 bufferImageGranularity = 0x00000100 sparseAddressSpaceSize = 0x00000000 maxBoundDescriptorSets = 16 maxPerStageDescriptorSamplers = 24 maxPerStageDescriptorUniformBuffers = 12 maxPerStageDescriptorStorageBuffers = 8 maxPerStageDescriptorSampledImages = 16 maxPerStageDescriptorStorageImages = 4 maxPerStageDescriptorInputAttachments = 4 maxPerStageResources = 128 maxDescriptorSetSamplers = 144 maxDescriptorSetUniformBuffers = 72 maxDescriptorSetUniformBuffersDynamic = 8 maxDescriptorSetStorageBuffers = 48 maxDescriptorSetStorageBuffersDynamic = 4 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 = 32 maxGeometryInputComponents = 64 maxGeometryOutputComponents = 64 maxGeometryOutputVertices = 256 maxGeometryTotalOutputComponents = 1024 maxFragmentInputComponents = 64 maxFragmentOutputAttachments = 4 maxFragmentDualSrcAttachments = 0 maxFragmentCombinedOutputResources = 16 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.03125 512 lineWidthRange: count = 2 1 32 pointSizeGranularity = 0.03125 lineWidthGranularity = 0.03125 strictLines = true standardSampleLocations = false optimalBufferCopyOffsetAlignment = 0x00000020 optimalBufferCopyRowPitchAlignment = 0x00000020 nonCoherentAtomSize = 0x00000100 VkPhysicalDeviceSparseProperties: --------------------------------- residencyStandard2DBlockShape = false residencyStandard2DMultisampleBlockShape = false residencyStandard3DBlockShape = false residencyAlignedMipSize = false residencyNonResidentStrict = false VkPhysicalDeviceCustomBorderColorPropertiesEXT: ----------------------------------------------- maxCustomBorderColorSamplers = 24 VkPhysicalDeviceIDPropertiesKHR: -------------------------------- deviceUUID = 2ed13185-e77c-e2ea-cfd5-078818d4e3e5 driverUUID = f8a6dd6f-f7e8-a4f9-de8e-3fd40279cf2d deviceNodeMask = 0 deviceLUIDValid = false VkPhysicalDeviceMaintenance3PropertiesKHR: ------------------------------------------ maxPerSetDescriptors = 67108863 maxMemoryAllocationSize = 0x40000000 VkPhysicalDeviceMultiviewPropertiesKHR: --------------------------------------- maxMultiviewViewCount = 16 maxMultiviewInstanceIndex = 4294967294 VkPhysicalDevicePointClippingPropertiesKHR: ------------------------------------------- pointClippingBehavior = POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT: ---------------------------------------------------- maxVertexAttribDivisor = 65535 Device Extensions: count = 35 ----------------------------- VK_EXT_color_write_enable : extension revision 1 VK_EXT_custom_border_color : extension revision 12 VK_EXT_external_memory_dma_buf : extension revision 1 VK_EXT_index_type_uint8 : extension revision 1 VK_EXT_physical_device_drm : extension revision 1 VK_EXT_pipeline_creation_cache_control : extension revision 3 VK_EXT_pipeline_creation_feedback : extension revision 1 VK_EXT_private_data : extension revision 1 VK_EXT_provoking_vertex : extension revision 1 VK_EXT_vertex_attribute_divisor : extension revision 3 VK_KHR_bind_memory2 : extension revision 1 VK_KHR_copy_commands2 : extension revision 1 VK_KHR_dedicated_allocation : extension revision 3 VK_KHR_descriptor_update_template : extension revision 1 VK_KHR_device_group : extension revision 4 VK_KHR_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_incremental_present : extension revision 2 VK_KHR_maintenance1 : extension revision 2 VK_KHR_maintenance2 : extension revision 1 VK_KHR_maintenance3 : extension revision 1 VK_KHR_multiview : extension revision 1 VK_KHR_relaxed_block_layout : extension revision 1 VK_KHR_sampler_mirror_clamp_to_edge : extension revision 3 VK_KHR_shader_non_semantic_info : extension revision 1 VK_KHR_storage_buffer_storage_class : extension revision 1 VK_KHR_swapchain : extension revision 70 VK_KHR_uniform_buffer_standard_layout : extension revision 1 VK_KHR_variable_pointers : extension revision 1 VkQueueFamilyProperties: ======================== queueProperties[0]: ------------------- minImageTransferGranularity = (1,1,1) queueCount = 1 queueFlags = QUEUE_GRAPHICS | QUEUE_COMPUTE | QUEUE_TRANSFER timestampValidBits = 64 present support = true VkPhysicalDeviceMemoryProperties: ================================= memoryHeaps: count = 1 memoryHeaps[0]: size = 6101004288 (0x16ba5f000) (5.68 GiB) budget = 255 (0x000000ff) (255.00 B) usage = 255 (0x000000ff) (255.00 B) 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 = true tessellationShader = false sampleRateShading = true dualSrcBlend = false logicOp = true multiDrawIndirect = false drawIndirectFirstInstance = true depthClamp = false depthBiasClamp = true fillModeNonSolid = true depthBounds = false wideLines = true largePoints = true alphaToOne = true multiViewport = false samplerAnisotropy = true textureCompressionETC2 = true textureCompressionASTC_LDR = true textureCompressionBC = false occlusionQueryPrecise = true pipelineStatisticsQuery = false vertexPipelineStoresAndAtomics = true fragmentStoresAndAtomics = true shaderTessellationAndGeometryPointSize = true 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 VkPhysicalDeviceCustomBorderColorFeaturesEXT: --------------------------------------------- customBorderColors = true customBorderColorWithoutFormat = false VkPhysicalDeviceIndexTypeUint8FeaturesEXT: ------------------------------------------ indexTypeUint8 = true VkPhysicalDeviceMultiviewFeaturesKHR: ------------------------------------- multiview = true multiviewGeometryShader = false multiviewTessellationShader = false VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT: -------------------------------------------------------- pipelineCreationCacheControl = true VkPhysicalDevicePrivateDataFeaturesEXT: --------------------------------------- privateData = true VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR: ------------------------------------------------------- uniformBufferStandardLayout = true VkPhysicalDeviceVariablePointersFeaturesKHR: -------------------------------------------- variablePointersStorageBuffer = true variablePointers = false VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT: -------------------------------------------------- vertexAttributeInstanceRateDivisor = true vertexAttributeInstanceRateZeroDivisor = false GPU1: ----- VkPhysicalDeviceProperties: --------------------------- apiVersion = 4194306 (1.0.2) driverVersion = 1 (0x0001) vendorID = 0x10005 deviceID = 0x0000 deviceType = PHYSICAL_DEVICE_TYPE_CPU deviceName = llvmpipe (LLVM 12.0.0, 128 bits) VkPhysicalDeviceLimits: ----------------------- maxImageDimension1D = 16384 maxImageDimension2D = 16384 maxImageDimension3D = 4096 maxImageDimensionCube = 32768 maxImageArrayLayers = 2048 maxTexelBufferElements = 134217728 maxUniformBufferRange = 65536 maxStorageBufferRange = 134217728 maxPushConstantsSize = 128 maxMemoryAllocationCount = 4096 maxSamplerAllocationCount = 32768 bufferImageGranularity = 0x00000040 sparseAddressSpaceSize = 0x00000000 maxBoundDescriptorSets = 8 maxPerStageDescriptorSamplers = 32 maxPerStageDescriptorUniformBuffers = 16 maxPerStageDescriptorStorageBuffers = 16 maxPerStageDescriptorSampledImages = 128 maxPerStageDescriptorStorageImages = 16 maxPerStageDescriptorInputAttachments = 8 maxPerStageResources = 128 maxDescriptorSetSamplers = 32768 maxDescriptorSetUniformBuffers = 256 maxDescriptorSetUniformBuffersDynamic = 256 maxDescriptorSetStorageBuffers = 256 maxDescriptorSetStorageBuffersDynamic = 256 maxDescriptorSetSampledImages = 256 maxDescriptorSetStorageImages = 256 maxDescriptorSetInputAttachments = 256 maxVertexInputAttributes = 32 maxVertexInputBindings = 32 maxVertexInputAttributeOffset = 2047 maxVertexInputBindingStride = 2048 maxVertexOutputComponents = 128 maxTessellationGenerationLevel = 64 maxTessellationPatchSize = 32 maxTessellationControlPerVertexInputComponents = 128 maxTessellationControlPerVertexOutputComponents = 128 maxTessellationControlPerPatchOutputComponents = 128 maxTessellationControlTotalOutputComponents = 4096 maxTessellationEvaluationInputComponents = 128 maxTessellationEvaluationOutputComponents = 128 maxGeometryShaderInvocations = 32 maxGeometryInputComponents = 64 maxGeometryOutputComponents = 128 maxGeometryOutputVertices = 1024 maxGeometryTotalOutputComponents = 1024 maxFragmentInputComponents = 128 maxFragmentOutputAttachments = 8 maxFragmentDualSrcAttachments = 2 maxFragmentCombinedOutputResources = 8 maxComputeSharedMemorySize = 32768 maxComputeWorkGroupCount: count = 3 65535 65535 65535 maxComputeWorkGroupInvocations = 1024 maxComputeWorkGroupSize: count = 3 1024 1024 1024 subPixelPrecisionBits = 8 subTexelPrecisionBits = 8 mipmapPrecisionBits = 8 maxDrawIndexedIndexValue = 4294967295 maxDrawIndirectCount = 4294967295 maxSamplerLodBias = 16 maxSamplerAnisotropy = 16 maxViewports = 16 maxViewportDimensions: count = 2 16384 16384 viewportBoundsRange: count = 2 -32768 32768 viewportSubPixelBits = 0 minMemoryMapAlignment = 4096 minTexelBufferOffsetAlignment = 0x00000010 minUniformBufferOffsetAlignment = 0x00000010 minStorageBufferOffsetAlignment = 0x00000010 minTexelOffset = -32 maxTexelOffset = 31 minTexelGatherOffset = -32 maxTexelGatherOffset = 31 minInterpolationOffset = -2 maxInterpolationOffset = 2 subPixelInterpolationOffsetBits = 8 maxFramebufferWidth = 16384 maxFramebufferHeight = 16384 maxFramebufferLayers = 2048 framebufferColorSampleCounts: count = 2 SAMPLE_COUNT_1_BIT SAMPLE_COUNT_4_BIT framebufferDepthSampleCounts: count = 2 SAMPLE_COUNT_1_BIT SAMPLE_COUNT_4_BIT framebufferStencilSampleCounts: count = 2 SAMPLE_COUNT_1_BIT SAMPLE_COUNT_4_BIT framebufferNoAttachmentsSampleCounts: count = 2 SAMPLE_COUNT_1_BIT SAMPLE_COUNT_4_BIT maxColorAttachments = 8 sampledImageColorSampleCounts: count = 2 SAMPLE_COUNT_1_BIT SAMPLE_COUNT_4_BIT sampledImageIntegerSampleCounts: count = 2 SAMPLE_COUNT_1_BIT SAMPLE_COUNT_4_BIT sampledImageDepthSampleCounts: count = 2 SAMPLE_COUNT_1_BIT SAMPLE_COUNT_4_BIT sampledImageStencilSampleCounts: count = 2 SAMPLE_COUNT_1_BIT SAMPLE_COUNT_4_BIT storageImageSampleCounts: count = 2 SAMPLE_COUNT_1_BIT SAMPLE_COUNT_4_BIT maxSampleMaskWords = 1 timestampComputeAndGraphics = true timestampPeriod = 1 maxClipDistances = 8 maxCullDistances = 8 maxCombinedClipAndCullDistances = 8 discreteQueuePriorities = 2 pointSizeRange: count = 2 0 255 lineWidthRange: count = 2 1 1 pointSizeGranularity = 0.125 lineWidthGranularity = 0 strictLines = false standardSampleLocations = true optimalBufferCopyOffsetAlignment = 0x00000080 optimalBufferCopyRowPitchAlignment = 0x00000080 nonCoherentAtomSize = 0x00000040 VkPhysicalDeviceSparseProperties: --------------------------------- residencyStandard2DBlockShape = false residencyStandard2DMultisampleBlockShape = false residencyStandard3DBlockShape = false residencyAlignedMipSize = false residencyNonResidentStrict = false VkPhysicalDeviceDriverPropertiesKHR: ------------------------------------ driverID = DRIVER_ID_MESA_LLVMPIPE driverName = llvmpipe driverInfo = Mesa 21.0.3 (LLVM 12.0.0) conformanceVersion = 1.0.0.0 VkPhysicalDeviceIDPropertiesKHR: -------------------------------- deviceUUID = 00000000-0000-0000-0000-000000000000 driverUUID = 00000000-0000-0000-0000-000000000000 deviceNodeMask = 0 deviceLUIDValid = false VkPhysicalDevicePushDescriptorPropertiesKHR: -------------------------------------------- maxPushDescriptors = 32 VkPhysicalDeviceTransformFeedbackPropertiesEXT: ----------------------------------------------- maxTransformFeedbackStreams = 4 maxTransformFeedbackBuffers = 4 maxTransformFeedbackBufferSize = 0xffffffff maxTransformFeedbackStreamDataSize = 512 maxTransformFeedbackBufferDataSize = 512 maxTransformFeedbackBufferDataStride = 512 transformFeedbackQueries = true transformFeedbackStreamsLinesTriangles = false transformFeedbackRasterizationStreamSelect = false transformFeedbackDraw = true VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT: ---------------------------------------------------- maxVertexAttribDivisor = 4294967295 Device Extensions: count = 23 ----------------------------- VK_EXT_external_memory_dma_buf : extension revision 1 VK_EXT_index_type_uint8 : extension revision 1 VK_EXT_post_depth_coverage : extension revision 1 VK_EXT_private_data : extension revision 1 VK_EXT_shader_stencil_export : extension revision 1 VK_EXT_transform_feedback : extension revision 1 VK_EXT_vertex_attribute_divisor : extension revision 3 VK_GOOGLE_decorate_string : extension revision 1 VK_GOOGLE_hlsl_functionality1 : extension revision 1 VK_KHR_bind_memory2 : extension revision 1 VK_KHR_dedicated_allocation : 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_get_memory_requirements2 : extension revision 1 VK_KHR_incremental_present : extension revision 1 VK_KHR_maintenance1 : 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_storage_buffer_storage_class : extension revision 1 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 = 2147483648 (0x80000000) (2.00 GiB) budget = 0 (0x00000000) (0.00 B) usage = 0 (0x00000000) (0.00 B) flags: count = 1 MEMORY_HEAP_DEVICE_LOCAL_BIT memoryTypes: count = 1 memoryTypes[0]: heapIndex = 0 propertyFlags = 0x000f: count = 4 MEMORY_PROPERTY_DEVICE_LOCAL_BIT MEMORY_PROPERTY_HOST_VISIBLE_BIT MEMORY_PROPERTY_HOST_COHERENT_BIT MEMORY_PROPERTY_HOST_CACHED_BIT usable for: IMAGE_TILING_OPTIMAL: color images FORMAT_D16_UNORM FORMAT_X8_D24_UNORM_PACK32 FORMAT_D32_SFLOAT FORMAT_S8_UINT FORMAT_D24_UNORM_S8_UINT FORMAT_D32_SFLOAT_S8_UINT (non-sparse) IMAGE_TILING_LINEAR: color images (non-sparse) VkPhysicalDeviceFeatures: ========================= robustBufferAccess = true fullDrawIndexUint32 = true imageCubeArray = true independentBlend = true geometryShader = true tessellationShader = true sampleRateShading = true dualSrcBlend = true logicOp = true multiDrawIndirect = true drawIndirectFirstInstance = true depthClamp = true depthBiasClamp = true fillModeNonSolid = true depthBounds = false wideLines = false largePoints = true alphaToOne = true multiViewport = true samplerAnisotropy = false textureCompressionETC2 = false textureCompressionASTC_LDR = false textureCompressionBC = true occlusionQueryPrecise = true pipelineStatisticsQuery = true vertexPipelineStoresAndAtomics = true fragmentStoresAndAtomics = true shaderTessellationAndGeometryPointSize = true shaderImageGatherExtended = true shaderStorageImageExtendedFormats = false shaderStorageImageMultisample = true shaderStorageImageReadWithoutFormat = false shaderStorageImageWriteWithoutFormat = true shaderUniformBufferArrayDynamicIndexing = false shaderSampledImageArrayDynamicIndexing = false shaderStorageBufferArrayDynamicIndexing = false shaderStorageImageArrayDynamicIndexing = false shaderClipDistance = true shaderCullDistance = true shaderFloat64 = true shaderInt64 = true shaderInt16 = false shaderResourceResidency = false shaderResourceMinLod = false sparseBinding = false sparseResidencyBuffer = false sparseResidencyImage2D = false sparseResidencyImage3D = false sparseResidency2Samples = false sparseResidency4Samples = false sparseResidency8Samples = false sparseResidency16Samples = false sparseResidencyAliased = false variableMultisampleRate = false inheritedQueries = false VkPhysicalDeviceIndexTypeUint8FeaturesEXT: ------------------------------------------ indexTypeUint8 = true VkPhysicalDevicePrivateDataFeaturesEXT: --------------------------------------- privateData = true VkPhysicalDeviceTransformFeedbackFeaturesEXT: --------------------------------------------- transformFeedback = true geometryStreams = true VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT: -------------------------------------------------- vertexAttributeInstanceRateDivisor = true vertexAttributeInstanceRateZeroDivisor = false ```