加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

Zink-aGalliumdriverThatEmitsVulkanAPIcalls

(2023-05-22 11:48:09)
标签:

it

分类: 技术
Zink-a Gallium driver that emits Vulkan API calls  instead of targeting a specific GPU architecture. 
This can be used to get full desktop OpenGL support on devices that only support Vulkan. 

OpenGL 2.1 is the minimum version Zink can support, and will always be exposed, given Vulkan support.

Here's a list of those requirements:

Vulkan 1.0
VkPhysicalDeviceFeatures:
logicOp
fillModeNonSolid
alphaToOne
shaderClipDistance

Device extensions:
VK_KHR_maintenance1
VK_KHR_create_renderpass2
VK_KHR_imageless_framebuffer
VK_KHR_timeline_semaphore
VK_EXT_custom_border_color with customBorderColorWithoutFormat
VK_EXT_provoking_vertex
VK_EXT_line_rasterization, with the following VkPhysicalDeviceLineRasterizationFeaturesEXT:
rectangularLines
bresenhamLines
smoothLines
stippledRectangularLines
stippledBresenhamLines
stippledSmoothLines

VK_KHR_swapchain_mutable_format
VK_EXT_border_color_swizzle
VK_KHR_descriptor_update_template

In addition to this, VK_KHR_external_memory is required to support the DRI code-path.

We also require either the VK_EXT_scalar_block_layout extension or Vulkan 1.2, with the scalarBlockLayout feature.

OpenGL 3.0
For OpenGL 3.0 support, the following additional requirements must be met:

VkPhysicalDeviceFeatures:
independentBlend

Device extensions:
VK_EXT_transform_feedback
VK_EXT_conditional_rendering

OpenGL 3.1
For OpenGL 3.1 support, the following additional VkPhysicalDeviceLimits are required:
maxPerStageDescriptorSamplers ≥ 16

OpenGL 3.2
For OpenGL 3.2 support, the following additional requirements must be met, although some of these might not actually get verified:

VkPhysicalDeviceFeatures:
depthClamp
geometryShader
shaderTessellationAndGeometryPointSize

Device extensions:
VK_EXT_depth_clip_enable

OpenGL 3.3
For OpenGL 3.3 support, the following additional requirements must be met, although some of these might not actually get verified:

VkPhysicalDeviceFeatures:
dualSrcBlend

Device extensions:
VK_EXT_vertex_attribute_divisor

OpenGL 4.0
For OpenGL 4.0 support, the following additional requirements must be met:

VkPhysicalDeviceFeatures:
sampleRateShading
tessellationShader
imageCubeArray

Device extensions:
VK_KHR_maintenance2

Formats requiring VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT:
VK_FORMAT_R32G32B32_SFLOAT
VK_FORMAT_R32G32B32_SINT
VK_FORMAT_R32G32B32_UINT

OpenGL 4.1
For OpenGL 4.1 support, the following additional requirements must be met:

VkPhysicalDeviceFeatures:
multiViewport

VkPhysicalDeviceLimits
maxImageDimension1D ≥ 16384
maxImageDimension2D ≥ 16384
maxImageDimension3D ≥ 2048
maxImageDimensionCube ≥ 16384
maxImageArrayLayers ≥ 2048
maxViewports ≥ 16

OpenGL 4.2
For OpenGL 4.2 support, the following additional requirements must be met:

Device extensions:
VK_EXT_image_2d_view_of_3d
VkPhysicalDeviceLimits:
shaderStorageImageExtendedFormats
shaderStorageImageWriteWithoutFormat
vertexPipelineStoresAndAtomics
fragmentStoresAndAtomics

For Vulkan 1.2 and above:
VkPhysicalDeviceVulkan11Features:
shaderDrawParameters

For Vulkan 1.1 and below:
Device extensions:
VK_KHR_shader_draw_parameters

OpenGL 4.3
For OpenGL 4.3 support, the following additional requirements must be met:
VkPhysicalDeviceFeatures:
robustBufferAccess

Formats requiring VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT:
VK_FORMAT_R8G8B8A8_UNORM
VK_FORMAT_R8G8B8A8_SRGB
VK_FORMAT_R16_UNORM
VK_FORMAT_R16G16_UNORM
VK_FORMAT_R16_SNORM
VK_FORMAT_R16G16_SNORM
VK_FORMAT_D32_SFLOAT_S8_UINT

OpenGL 4.4
For OpenGL 4.4 support, the following additional requirements must be met:
Formats requiring VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT:
VK_FORMAT_B10G11R11_UFLOAT_PACK32

For Vulkan 1.2 and above:
VkPhysicalDeviceVulkan12Features:
samplerMirrorClampToEdge

For Vulkan 1.1 and below:
Device extensions:
VK_KHR_sampler_mirror_clamp_to_edge

OpenGL 4.5
For OpenGL 4.5 support, the following additional VkPhysicalDeviceFeatures are required to be supported
shaderCullDistance

OpenGL 4.6
For OpenGL 4.6 support, the following additional requirements must be met:
VkPhysicalDeviceFeatures:
samplerAnisotropy
depthBiasClamp

Device extensions:
VK_KHR_draw_indirect_count

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有