1*61046927SAndroid Build Coastguard WorkerZink 2*61046927SAndroid Build Coastguard Worker==== 3*61046927SAndroid Build Coastguard Worker 4*61046927SAndroid Build Coastguard WorkerOverview 5*61046927SAndroid Build Coastguard Worker-------- 6*61046927SAndroid Build Coastguard Worker 7*61046927SAndroid Build Coastguard WorkerThe Zink driver is a Gallium driver that emits Vulkan API calls instead 8*61046927SAndroid Build Coastguard Workerof targeting a specific GPU architecture. This can be used to get full 9*61046927SAndroid Build Coastguard Workerdesktop OpenGL support on devices that only support Vulkan. 10*61046927SAndroid Build Coastguard Worker 11*61046927SAndroid Build Coastguard WorkerFeatures 12*61046927SAndroid Build Coastguard Worker-------- 13*61046927SAndroid Build Coastguard Worker 14*61046927SAndroid Build Coastguard WorkerThe feature-level of Zink depends on two things; what's implemented in Zink, 15*61046927SAndroid Build Coastguard Workeras well as the capabilities of the Vulkan driver. 16*61046927SAndroid Build Coastguard Worker 17*61046927SAndroid Build Coastguard WorkerThe feature-levels implemented by Zink are exposed by `Vulkan Profiles 18*61046927SAndroid Build Coastguard Worker<https://dev.vulkan.org/tools#vulkan-profiles>`__ in the 19*61046927SAndroid Build Coastguard Worker:file:`VP_ZINK_requirements.json` profiles file. 20*61046927SAndroid Build Coastguard Worker 21*61046927SAndroid Build Coastguard WorkerUsed with the `Vulkan Profiles tools <https://github.com/KhronosGroup/Vulkan-Profiles>`__, 22*61046927SAndroid Build Coastguard Workerwe can compare the ZINK profiles with Vulkan devices profiles generated with 23*61046927SAndroid Build Coastguard Worker`Vulkaninfo <https://vulkan.lunarg.com/doc/view/latest/windows/vulkaninfo.html>`__ 24*61046927SAndroid Build Coastguard Workeror `downloaded from GPUinfo.org`_ 25*61046927SAndroid Build Coastguard Workerto establish the feature-levels supported by these drivers. 26*61046927SAndroid Build Coastguard Worker 27*61046927SAndroid Build Coastguard WorkerOpenGL 2.1 28*61046927SAndroid Build Coastguard Worker^^^^^^^^^^ 29*61046927SAndroid Build Coastguard Worker 30*61046927SAndroid Build Coastguard WorkerOpenGL 2.1 is the minimum version Zink can support, and will always be 31*61046927SAndroid Build Coastguard Workerexposed, given Vulkan support. There's a few features that are required 32*61046927SAndroid Build Coastguard Workerfor correct behavior, but not all of these are validated; instead you'll 33*61046927SAndroid Build Coastguard Workersee rendering-issues and likely validation error, or even crashes. 34*61046927SAndroid Build Coastguard Worker 35*61046927SAndroid Build Coastguard WorkerHere's a list of those requirements: 36*61046927SAndroid Build Coastguard Worker 37*61046927SAndroid Build Coastguard Worker* Vulkan 1.0 38*61046927SAndroid Build Coastguard Worker* ``VkPhysicalDeviceFeatures``: 39*61046927SAndroid Build Coastguard Worker 40*61046927SAndroid Build Coastguard Worker * :vk-feat:`logicOp` 41*61046927SAndroid Build Coastguard Worker * :vk-feat:`fillModeNonSolid` 42*61046927SAndroid Build Coastguard Worker * :vk-feat:`alphaToOne` 43*61046927SAndroid Build Coastguard Worker * :vk-feat:`shaderClipDistance` 44*61046927SAndroid Build Coastguard Worker 45*61046927SAndroid Build Coastguard Worker* Device extensions: 46*61046927SAndroid Build Coastguard Worker 47*61046927SAndroid Build Coastguard Worker * :ext:`VK_KHR_maintenance1` 48*61046927SAndroid Build Coastguard Worker * :ext:`VK_KHR_create_renderpass2` 49*61046927SAndroid Build Coastguard Worker * :ext:`VK_KHR_imageless_framebuffer` 50*61046927SAndroid Build Coastguard Worker * :ext:`VK_KHR_timeline_semaphore` 51*61046927SAndroid Build Coastguard Worker * :ext:`VK_EXT_custom_border_color` with ``customBorderColorWithoutFormat`` 52*61046927SAndroid Build Coastguard Worker * :ext:`VK_EXT_provoking_vertex` 53*61046927SAndroid Build Coastguard Worker * :ext:`VK_EXT_line_rasterization`, with the following ``VkPhysicalDeviceLineRasterizationFeaturesEXT``: 54*61046927SAndroid Build Coastguard Worker 55*61046927SAndroid Build Coastguard Worker * :vk-feat:`rectangularLines` 56*61046927SAndroid Build Coastguard Worker * :vk-feat:`bresenhamLines` 57*61046927SAndroid Build Coastguard Worker * :vk-feat:`smoothLines` 58*61046927SAndroid Build Coastguard Worker * :vk-feat:`stippledRectangularLines` 59*61046927SAndroid Build Coastguard Worker * :vk-feat:`stippledBresenhamLines` 60*61046927SAndroid Build Coastguard Worker * :vk-feat:`stippledSmoothLines` 61*61046927SAndroid Build Coastguard Worker 62*61046927SAndroid Build Coastguard Worker * :ext:`VK_KHR_swapchain_mutable_format` 63*61046927SAndroid Build Coastguard Worker * :ext:`VK_EXT_border_color_swizzle` 64*61046927SAndroid Build Coastguard Worker * :ext:`VK_KHR_descriptor_update_template` 65*61046927SAndroid Build Coastguard Worker 66*61046927SAndroid Build Coastguard WorkerIn addition to this, :ext:`VK_KHR_external_memory` is required to support the 67*61046927SAndroid Build Coastguard WorkerDRI code-path. 68*61046927SAndroid Build Coastguard Worker 69*61046927SAndroid Build Coastguard WorkerWe also require either the :ext:`VK_EXT_scalar_block_layout` extension or 70*61046927SAndroid Build Coastguard WorkerVulkan 1.2, with the :vk-feat:`scalarBlockLayout` feature. 71*61046927SAndroid Build Coastguard Worker 72*61046927SAndroid Build Coastguard WorkerOpenGL 3.0 73*61046927SAndroid Build Coastguard Worker^^^^^^^^^^ 74*61046927SAndroid Build Coastguard Worker 75*61046927SAndroid Build Coastguard Worker 76*61046927SAndroid Build Coastguard WorkerFor OpenGL 3.0 support, the following additional requirements must be 77*61046927SAndroid Build Coastguard Workermet: 78*61046927SAndroid Build Coastguard Worker 79*61046927SAndroid Build Coastguard Worker* ``VkPhysicalDeviceFeatures``: 80*61046927SAndroid Build Coastguard Worker 81*61046927SAndroid Build Coastguard Worker * :vk-feat:`independentBlend` 82*61046927SAndroid Build Coastguard Worker 83*61046927SAndroid Build Coastguard Worker* Device extensions: 84*61046927SAndroid Build Coastguard Worker 85*61046927SAndroid Build Coastguard Worker * :ext:`VK_EXT_transform_feedback` 86*61046927SAndroid Build Coastguard Worker * :ext:`VK_EXT_conditional_rendering` 87*61046927SAndroid Build Coastguard Worker 88*61046927SAndroid Build Coastguard WorkerOpenGL 3.1 89*61046927SAndroid Build Coastguard Worker^^^^^^^^^^ 90*61046927SAndroid Build Coastguard Worker 91*61046927SAndroid Build Coastguard WorkerFor OpenGL 3.1 support, the following additional ``VkPhysicalDeviceLimits`` 92*61046927SAndroid Build Coastguard Workerare required: 93*61046927SAndroid Build Coastguard Worker 94*61046927SAndroid Build Coastguard Worker* ``maxPerStageDescriptorSamplers`` ≥ 16 95*61046927SAndroid Build Coastguard Worker 96*61046927SAndroid Build Coastguard WorkerOpenGL 3.2 97*61046927SAndroid Build Coastguard Worker^^^^^^^^^^ 98*61046927SAndroid Build Coastguard Worker 99*61046927SAndroid Build Coastguard WorkerFor OpenGL 3.2 support, the following additional requirements must be 100*61046927SAndroid Build Coastguard Workermet, although some of these might not actually get verified: 101*61046927SAndroid Build Coastguard Worker 102*61046927SAndroid Build Coastguard Worker* ``VkPhysicalDeviceFeatures``: 103*61046927SAndroid Build Coastguard Worker 104*61046927SAndroid Build Coastguard Worker * :vk-feat:`depthClamp` 105*61046927SAndroid Build Coastguard Worker * :vk-feat:`geometryShader` 106*61046927SAndroid Build Coastguard Worker * :vk-feat:`shaderTessellationAndGeometryPointSize` 107*61046927SAndroid Build Coastguard Worker 108*61046927SAndroid Build Coastguard Worker* Device extensions: 109*61046927SAndroid Build Coastguard Worker 110*61046927SAndroid Build Coastguard Worker * :ext:`VK_EXT_depth_clip_enable` 111*61046927SAndroid Build Coastguard Worker 112*61046927SAndroid Build Coastguard WorkerOpenGL 3.3 113*61046927SAndroid Build Coastguard Worker^^^^^^^^^^ 114*61046927SAndroid Build Coastguard Worker 115*61046927SAndroid Build Coastguard WorkerFor OpenGL 3.3 support, the following additional requirements must be 116*61046927SAndroid Build Coastguard Workermet, although some of these might not actually get verified: 117*61046927SAndroid Build Coastguard Worker 118*61046927SAndroid Build Coastguard Worker* ``VkPhysicalDeviceFeatures``: 119*61046927SAndroid Build Coastguard Worker 120*61046927SAndroid Build Coastguard Worker * :vk-feat:`dualSrcBlend` 121*61046927SAndroid Build Coastguard Worker 122*61046927SAndroid Build Coastguard Worker* Device extensions: 123*61046927SAndroid Build Coastguard Worker 124*61046927SAndroid Build Coastguard Worker * :ext:`VK_EXT_vertex_attribute_divisor` 125*61046927SAndroid Build Coastguard Worker 126*61046927SAndroid Build Coastguard WorkerOpenGL 4.0 127*61046927SAndroid Build Coastguard Worker^^^^^^^^^^ 128*61046927SAndroid Build Coastguard Worker 129*61046927SAndroid Build Coastguard WorkerFor OpenGL 4.0 support, the following additional requirements must be 130*61046927SAndroid Build Coastguard Workermet: 131*61046927SAndroid Build Coastguard Worker 132*61046927SAndroid Build Coastguard Worker* ``VkPhysicalDeviceFeatures``: 133*61046927SAndroid Build Coastguard Worker 134*61046927SAndroid Build Coastguard Worker * :vk-feat:`sampleRateShading` 135*61046927SAndroid Build Coastguard Worker * :vk-feat:`tessellationShader` 136*61046927SAndroid Build Coastguard Worker * :vk-feat:`imageCubeArray` 137*61046927SAndroid Build Coastguard Worker 138*61046927SAndroid Build Coastguard Worker* Device extensions: 139*61046927SAndroid Build Coastguard Worker 140*61046927SAndroid Build Coastguard Worker * :ext:`VK_KHR_maintenance2` 141*61046927SAndroid Build Coastguard Worker 142*61046927SAndroid Build Coastguard Worker* Formats requiring ``VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT``: 143*61046927SAndroid Build Coastguard Worker 144*61046927SAndroid Build Coastguard Worker * ``VK_FORMAT_R32G32B32_SFLOAT`` 145*61046927SAndroid Build Coastguard Worker * ``VK_FORMAT_R32G32B32_SINT`` 146*61046927SAndroid Build Coastguard Worker * ``VK_FORMAT_R32G32B32_UINT`` 147*61046927SAndroid Build Coastguard Worker 148*61046927SAndroid Build Coastguard WorkerOpenGL 4.1 149*61046927SAndroid Build Coastguard Worker^^^^^^^^^^ 150*61046927SAndroid Build Coastguard Worker 151*61046927SAndroid Build Coastguard WorkerFor OpenGL 4.1 support, the following additional requirements must be 152*61046927SAndroid Build Coastguard Workermet: 153*61046927SAndroid Build Coastguard Worker 154*61046927SAndroid Build Coastguard Worker* ``VkPhysicalDeviceFeatures``: 155*61046927SAndroid Build Coastguard Worker 156*61046927SAndroid Build Coastguard Worker * :vk-feat:`multiViewport` 157*61046927SAndroid Build Coastguard Worker 158*61046927SAndroid Build Coastguard Worker* ``VkPhysicalDeviceLimits`` 159*61046927SAndroid Build Coastguard Worker 160*61046927SAndroid Build Coastguard Worker * ``maxImageDimension1D`` ≥ 16384 161*61046927SAndroid Build Coastguard Worker * ``maxImageDimension2D`` ≥ 16384 162*61046927SAndroid Build Coastguard Worker * ``maxImageDimension3D`` ≥ 2048 163*61046927SAndroid Build Coastguard Worker * ``maxImageDimensionCube`` ≥ 16384 164*61046927SAndroid Build Coastguard Worker * ``maxImageArrayLayers`` ≥ 2048 165*61046927SAndroid Build Coastguard Worker * ``maxViewports`` ≥ 16 166*61046927SAndroid Build Coastguard Worker 167*61046927SAndroid Build Coastguard WorkerOpenGL 4.2 168*61046927SAndroid Build Coastguard Worker^^^^^^^^^^ 169*61046927SAndroid Build Coastguard Worker 170*61046927SAndroid Build Coastguard WorkerFor OpenGL 4.2 support, the following additional requirements must be 171*61046927SAndroid Build Coastguard Workermet: 172*61046927SAndroid Build Coastguard Worker 173*61046927SAndroid Build Coastguard Worker* Device extensions: 174*61046927SAndroid Build Coastguard Worker * :ext:`VK_EXT_image_2d_view_of_3d` 175*61046927SAndroid Build Coastguard Worker 176*61046927SAndroid Build Coastguard Worker* ``VkPhysicalDeviceLimits``: 177*61046927SAndroid Build Coastguard Worker 178*61046927SAndroid Build Coastguard Worker * ``shaderStorageImageExtendedFormats`` 179*61046927SAndroid Build Coastguard Worker * ``shaderStorageImageWriteWithoutFormat`` 180*61046927SAndroid Build Coastguard Worker * ``vertexPipelineStoresAndAtomics`` 181*61046927SAndroid Build Coastguard Worker * ``fragmentStoresAndAtomics`` 182*61046927SAndroid Build Coastguard Worker 183*61046927SAndroid Build Coastguard Worker* For Vulkan 1.2 and above: 184*61046927SAndroid Build Coastguard Worker 185*61046927SAndroid Build Coastguard Worker * ``VkPhysicalDeviceVulkan11Features``: 186*61046927SAndroid Build Coastguard Worker 187*61046927SAndroid Build Coastguard Worker * :vk-feat:`shaderDrawParameters` 188*61046927SAndroid Build Coastguard Worker 189*61046927SAndroid Build Coastguard Worker* For Vulkan 1.1 and below: 190*61046927SAndroid Build Coastguard Worker 191*61046927SAndroid Build Coastguard Worker * Device extensions: 192*61046927SAndroid Build Coastguard Worker 193*61046927SAndroid Build Coastguard Worker * :ext:`VK_KHR_shader_draw_parameters` 194*61046927SAndroid Build Coastguard Worker 195*61046927SAndroid Build Coastguard WorkerOpenGL 4.3 196*61046927SAndroid Build Coastguard Worker^^^^^^^^^^ 197*61046927SAndroid Build Coastguard Worker 198*61046927SAndroid Build Coastguard WorkerFor OpenGL 4.3 support, the following additional requirements must be 199*61046927SAndroid Build Coastguard Workermet: 200*61046927SAndroid Build Coastguard Worker 201*61046927SAndroid Build Coastguard Worker* ``VkPhysicalDeviceFeatures``: 202*61046927SAndroid Build Coastguard Worker 203*61046927SAndroid Build Coastguard Worker * :vk-feat:`robustBufferAccess` 204*61046927SAndroid Build Coastguard Worker 205*61046927SAndroid Build Coastguard Worker* Formats requiring ``VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT``: 206*61046927SAndroid Build Coastguard Worker 207*61046927SAndroid Build Coastguard Worker * ``VK_FORMAT_R8G8B8A8_UNORM`` 208*61046927SAndroid Build Coastguard Worker * ``VK_FORMAT_R8G8B8A8_SRGB`` 209*61046927SAndroid Build Coastguard Worker * ``VK_FORMAT_R16_UNORM`` 210*61046927SAndroid Build Coastguard Worker * ``VK_FORMAT_R16G16_UNORM`` 211*61046927SAndroid Build Coastguard Worker * ``VK_FORMAT_R16_SNORM`` 212*61046927SAndroid Build Coastguard Worker * ``VK_FORMAT_R16G16_SNORM`` 213*61046927SAndroid Build Coastguard Worker * ``VK_FORMAT_D32_SFLOAT_S8_UINT`` 214*61046927SAndroid Build Coastguard Worker 215*61046927SAndroid Build Coastguard WorkerOpenGL 4.4 216*61046927SAndroid Build Coastguard Worker^^^^^^^^^^ 217*61046927SAndroid Build Coastguard Worker 218*61046927SAndroid Build Coastguard WorkerFor OpenGL 4.4 support, the following additional requirements must be 219*61046927SAndroid Build Coastguard Workermet: 220*61046927SAndroid Build Coastguard Worker 221*61046927SAndroid Build Coastguard Worker* Formats requiring ``VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT``: 222*61046927SAndroid Build Coastguard Worker 223*61046927SAndroid Build Coastguard Worker * ``VK_FORMAT_B10G11R11_UFLOAT_PACK32`` 224*61046927SAndroid Build Coastguard Worker 225*61046927SAndroid Build Coastguard Worker* For Vulkan 1.2 and above: 226*61046927SAndroid Build Coastguard Worker 227*61046927SAndroid Build Coastguard Worker * ``VkPhysicalDeviceVulkan12Features``: 228*61046927SAndroid Build Coastguard Worker 229*61046927SAndroid Build Coastguard Worker * ``samplerMirrorClampToEdge`` 230*61046927SAndroid Build Coastguard Worker 231*61046927SAndroid Build Coastguard Worker* For Vulkan 1.1 and below: 232*61046927SAndroid Build Coastguard Worker 233*61046927SAndroid Build Coastguard Worker * Device extensions: 234*61046927SAndroid Build Coastguard Worker 235*61046927SAndroid Build Coastguard Worker * :ext:`VK_KHR_sampler_mirror_clamp_to_edge` 236*61046927SAndroid Build Coastguard Worker 237*61046927SAndroid Build Coastguard WorkerOpenGL 4.5 238*61046927SAndroid Build Coastguard Worker^^^^^^^^^^ 239*61046927SAndroid Build Coastguard Worker 240*61046927SAndroid Build Coastguard WorkerFor OpenGL 4.5 support, the following additional ``VkPhysicalDeviceFeatures`` 241*61046927SAndroid Build Coastguard Workerare required to be supported 242*61046927SAndroid Build Coastguard Worker 243*61046927SAndroid Build Coastguard Worker* :vk-feat:`shaderCullDistance` 244*61046927SAndroid Build Coastguard Worker 245*61046927SAndroid Build Coastguard WorkerOpenGL 4.6 246*61046927SAndroid Build Coastguard Worker^^^^^^^^^^ 247*61046927SAndroid Build Coastguard Worker 248*61046927SAndroid Build Coastguard WorkerFor OpenGL 4.6 support, the following additional requirements must be 249*61046927SAndroid Build Coastguard Workermet: 250*61046927SAndroid Build Coastguard Worker 251*61046927SAndroid Build Coastguard Worker* ``VkPhysicalDeviceFeatures``: 252*61046927SAndroid Build Coastguard Worker 253*61046927SAndroid Build Coastguard Worker * :vk-feat:`samplerAnisotropy` 254*61046927SAndroid Build Coastguard Worker * :vk-feat:`depthBiasClamp` 255*61046927SAndroid Build Coastguard Worker 256*61046927SAndroid Build Coastguard Worker* Device extensions: 257*61046927SAndroid Build Coastguard Worker 258*61046927SAndroid Build Coastguard Worker * :ext:`VK_KHR_draw_indirect_count` 259*61046927SAndroid Build Coastguard Worker 260*61046927SAndroid Build Coastguard WorkerPerformance 261*61046927SAndroid Build Coastguard Worker----------- 262*61046927SAndroid Build Coastguard Worker 263*61046927SAndroid Build Coastguard WorkerIf you notice poor performance and high CPU usage while running an application, 264*61046927SAndroid Build Coastguard Workerchanging the descriptor manager may improve performance: 265*61046927SAndroid Build Coastguard Worker 266*61046927SAndroid Build Coastguard Worker.. envvar:: ZINK_DESCRIPTORS <mode> ("auto") 267*61046927SAndroid Build Coastguard Worker 268*61046927SAndroid Build Coastguard Worker``auto`` 269*61046927SAndroid Build Coastguard Worker Automatically detect best mode. This is the default. 270*61046927SAndroid Build Coastguard Worker``lazy`` 271*61046927SAndroid Build Coastguard Worker Attempt to use the least amount of CPU by binding descriptors opportunistically. 272*61046927SAndroid Build Coastguard Worker``db`` 273*61046927SAndroid Build Coastguard Worker Use EXT_descriptor_buffer when possible. 274*61046927SAndroid Build Coastguard Worker 275*61046927SAndroid Build Coastguard WorkerDebugging 276*61046927SAndroid Build Coastguard Worker--------- 277*61046927SAndroid Build Coastguard Worker 278*61046927SAndroid Build Coastguard WorkerThere's a few tools that are useful for debugging Zink, like this environment 279*61046927SAndroid Build Coastguard Workervariable: 280*61046927SAndroid Build Coastguard Worker 281*61046927SAndroid Build Coastguard Worker.. envvar:: ZINK_DEBUG 282*61046927SAndroid Build Coastguard Worker 283*61046927SAndroid Build Coastguard Worker Accepts the following comma-separated list of flags: 284*61046927SAndroid Build Coastguard Worker 285*61046927SAndroid Build Coastguard Worker ``nir`` 286*61046927SAndroid Build Coastguard Worker Print the NIR form of all shaders to stderr. 287*61046927SAndroid Build Coastguard Worker ``spirv`` 288*61046927SAndroid Build Coastguard Worker Write the binary SPIR-V form of all compiled shaders to a file in the 289*61046927SAndroid Build Coastguard Worker current directory, and print a message with the filename to stderr. 290*61046927SAndroid Build Coastguard Worker ``tgsi`` 291*61046927SAndroid Build Coastguard Worker Print the TGSI form of TGSI shaders to stderr. 292*61046927SAndroid Build Coastguard Worker ``validation`` 293*61046927SAndroid Build Coastguard Worker Dump Validation layer output. 294*61046927SAndroid Build Coastguard Worker ``sync`` 295*61046927SAndroid Build Coastguard Worker Emit full synchronization barriers before every draw and dispatch. 296*61046927SAndroid Build Coastguard Worker ``compact`` 297*61046927SAndroid Build Coastguard Worker Use a maximum of 4 descriptor sets 298*61046927SAndroid Build Coastguard Worker ``noreorder`` 299*61046927SAndroid Build Coastguard Worker Do not reorder or optimize GL command streams 300*61046927SAndroid Build Coastguard Worker ``gpl`` 301*61046927SAndroid Build Coastguard Worker Force using Graphics Pipeline Library for all shaders 302*61046927SAndroid Build Coastguard Worker ``rp`` 303*61046927SAndroid Build Coastguard Worker Enable render pass optimizations (for tiling GPUs) 304*61046927SAndroid Build Coastguard Worker ``norp`` 305*61046927SAndroid Build Coastguard Worker Disable render pass optimizations (for tiling GPUs) 306*61046927SAndroid Build Coastguard Worker ``map`` 307*61046927SAndroid Build Coastguard Worker Print info about mapped VRAM 308*61046927SAndroid Build Coastguard Worker ``flushsync`` 309*61046927SAndroid Build Coastguard Worker Force synchronous flushes/presents 310*61046927SAndroid Build Coastguard Worker ``noshobj`` 311*61046927SAndroid Build Coastguard Worker Disable EXT_shader_object 312*61046927SAndroid Build Coastguard Worker ``optimal_keys`` 313*61046927SAndroid Build Coastguard Worker Debug/use optimal_keys 314*61046927SAndroid Build Coastguard Worker ``noopt`` 315*61046927SAndroid Build Coastguard Worker Disable async optimized pipeline compiles 316*61046927SAndroid Build Coastguard Worker ``nobgc`` 317*61046927SAndroid Build Coastguard Worker Disable all async pipeline compiles 318*61046927SAndroid Build Coastguard Worker ``mem`` 319*61046927SAndroid Build Coastguard Worker Enable memory allocation debugging 320*61046927SAndroid Build Coastguard Worker ``quiet`` 321*61046927SAndroid Build Coastguard Worker Suppress probably-harmless warnings 322*61046927SAndroid Build Coastguard Worker 323*61046927SAndroid Build Coastguard WorkerVulkan Validation Layers 324*61046927SAndroid Build Coastguard Worker^^^^^^^^^^^^^^^^^^^^^^^^ 325*61046927SAndroid Build Coastguard Worker 326*61046927SAndroid Build Coastguard WorkerAnother useful tool for debugging is the `Vulkan Validation Layers 327*61046927SAndroid Build Coastguard Worker<https://github.com/KhronosGroup/Vulkan-ValidationLayers/blob/main/README.md>`__. 328*61046927SAndroid Build Coastguard Worker 329*61046927SAndroid Build Coastguard WorkerThe validation layers effectively insert extra checking between Zink and the 330*61046927SAndroid Build Coastguard WorkerVulkan driver, pointing out incorrect usage of the Vulkan API. The layers can 331*61046927SAndroid Build Coastguard Workerbe enabled by setting the environment variable :envvar:`VK_LOADER_LAYERS_ENABLE` to 332*61046927SAndroid Build Coastguard Worker``VK_LAYER_KHRONOS_validation``. You can read more about the Validation Layers 333*61046927SAndroid Build Coastguard Workerin the link above. 334*61046927SAndroid Build Coastguard Worker 335*61046927SAndroid Build Coastguard WorkerApple macOS and MoltenVK 336*61046927SAndroid Build Coastguard Worker------------------------ 337*61046927SAndroid Build Coastguard Worker 338*61046927SAndroid Build Coastguard WorkerZink on macOS is experimental with very limited capabilities. 339*61046927SAndroid Build Coastguard WorkerThe Vulkan SDK (1.3.250 or newer) is required to build Zink. 340*61046927SAndroid Build Coastguard WorkerSet the build option ``-Dmoltenvk-dir=<directory>`` to point at your Vulkan SDK install or MoltenVK build. 341*61046927SAndroid Build Coastguard WorkerAdd Zink to the Gallium drivers build option ``-Dgallium-drivers=zink``. 342*61046927SAndroid Build Coastguard WorkerIf installed using ``brew``, you can set ``-D moltenvk-dir=$(brew --prefix molten-vk)``. 343*61046927SAndroid Build Coastguard Worker 344*61046927SAndroid Build Coastguard Worker 345*61046927SAndroid Build Coastguard WorkerIRC 346*61046927SAndroid Build Coastguard Worker--- 347*61046927SAndroid Build Coastguard Worker 348*61046927SAndroid Build Coastguard WorkerIn order to make things a bit easier to follow, we have decided to create our 349*61046927SAndroid Build Coastguard Workerown IRC channel. If you're interested in contributing, or have any technical 350*61046927SAndroid Build Coastguard Workerquestions, don't hesitate to visit `#zink on OFTC 351*61046927SAndroid Build Coastguard Worker<irc://irc.oftc.net/zink>`__ and say hi! 352*61046927SAndroid Build Coastguard Worker 353*61046927SAndroid Build Coastguard Worker 354*61046927SAndroid Build Coastguard Worker.. _downloaded from GPUinfo.org: https://www.saschawillems.de/blog/2022/03/12/vulkan-profiles-support-for-the-vulkan-hardware-capability-viewer-and-database/ 355