[研究]Vulkan、Vulkan SDK、Vulkaninfo與 Vulkan Capabilities Viewer
2025-05-27
Vulkan 是甚麼縮寫 ?
ChatGPT 說:
Vulkan 並不是一個縮寫,而是一個正式名稱。它是一個由 Khronos Group 推出的跨平台、低開銷、高效能的圖形與計算 API,用來取代較舊的 OpenGL。Vulkan 的設計目的是給開發者更接近硬體層級的控制,以獲得更高效能與更低延遲,尤其適用於高階 3D 應用,例如遊戲與專業繪圖軟體。
雖然不是縮寫,但「Vulkan」這個名字來自「Vulcan」,即羅馬神話中的火神(也對應希臘神話中的赫淮斯托斯 Hephaestus),象徵強大和掌控火與金屬的力量,與圖形渲染與高效能運算的概念相呼應。
******************************************************************************
Windows Server 2019預設不會提供 Vulkaninfo,除非顯示卡驅動程式裡面包含
******************************************************************************
vulkan 是甚麼?
ChatGPT 說:
Vulkan 是一種低開銷、高效能的跨平台圖形與計算 API,主要用於3D 圖形繪製(例如遊戲與模擬)和GPU 加速的計算任務。
✅ 簡單來說:
Vulkan 就像是一種讓程式與顯示卡溝通的語言,比以前常用的 OpenGL 或 DirectX 11 更現代、更有效率。
🔧 Vulkan 的特色:
| 特性 | 說明 |
| 🧠 低開銷(Low-overhead) | 讓開發者更直接控制 GPU,減少系統資源浪費。 |
| 📦 多執行緒支援 | 可以同時利用多核心 CPU,提升效能。 |
| 🖥️ 跨平台 | 支援 Windows、Linux、Android,甚至 iOS(透過 MoltenVK)。 |
| 🛠️ 更接近硬體 | 對比 OpenGL、DirectX,Vulkan 更「底層」,給予開發者更多掌控權。 |
| 🕹️ 遊戲與高效能應用 | 被許多遊戲引擎(如 Unreal Engine、Unity)和遊戲採用。 |
🎮 哪些東西會用到 Vulkan?
- 高效能遊戲(如《DOOM》、《Wolfenstein》)
- 模擬器(如 Yuzu、RPCS3)
- 行動裝置(Android 上支援 Vulkan)
- 渲染引擎(如 Unity、Unreal)
- 虛擬實境(VR / AR)
🆚 Vulkan vs. OpenGL / DirectX
| 特性 | Vulkan | OpenGL | DirectX 11 |
| 效能 | ✅ 更高 | 一般 | 一般 |
| 控制粒度 | ✅ 更細 | 較抽象 | 較抽象 |
| 學習難度 | ❗ 較高 | 較簡單 | 中等 |
| 跨平台 | ✅ 是 | ✅ 是 | ❌ 限 Windows/Xbox(DirectX 12 除外) |
********************************************************************************
你可以使用 Vulkan Capabilities Viewer 或執行:
https://github.com/SaschaWillems/VulkanCapsViewer
https://vulkan.gpuinfo.org/download.php
下載 vulkancapsviewer_4.01_win64.zip
********************************************************************************
Windows 命令提示字元:
某真實機器實際測試,下面
C:\>vulkaninfo /?
vulkaninfo - Summarize Vulkan information in relation to the current environment.
USAGE: vulkaninfo [options]
OPTIONS:
-h, --help Print this help.
--html Produce an html version of vulkaninfo output, saved as
"vulkaninfo.html" in the directory in which the command is
run.
-j, --json Produce a json version of vulkaninfo to standard output of the
first gpu in the system conforming to the DevSim schema.
--json=<gpu-number> For a multi-gpu system, a single gpu can be targetted by
specifying the gpu-number associated with the gpu of
interest. This number can be determined by running
vulkaninfo without any options specified.
--show-formats Display the format properties of each physical device.
Note: This option does not affect html or json output;
they will always print format properties.
C:\>
|
某真實機器實際測試,下面
C:\>vulkaninfo
WARNING: [Loader Message] Code 0 : ReadDataFilesInRegistry: Registry lookup failed to get layer manifest files.
==========
VULKANINFO
==========
Vulkan Instance Version: 1.2.131
Instance Extensions: count = 11
====================
VK_EXT_debug_report : extension revision 9
VK_EXT_debug_utils : extension revision 1
VK_EXT_swapchain_colorspace : extension revision 3
VK_KHR_device_group_creation : extension revision 1
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_physical_device_properties2 : extension revision 2
VK_KHR_get_surface_capabilities2 : extension revision 1
VK_KHR_surface : extension revision 25
VK_KHR_win32_surface : extension revision 5
Layers: count = 0
=======
Presentable Surfaces:
=====================
GPU id : 0 (Intel(R) UHD Graphics 630):
Surface types: count = 1
VK_KHR_win32_surface
Formats: count = 4
SurfaceFormat[0]:
format = FORMAT_B8G8R8A8_UNORM
colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
SurfaceFormat[1]:
format = FORMAT_B8G8R8A8_SRGB
colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
SurfaceFormat[2]:
format = FORMAT_R8G8B8A8_UNORM
colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
SurfaceFormat[3]:
format = FORMAT_R8G8B8A8_SRGB
colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
Present Modes: count = 2
PRESENT_MODE_IMMEDIATE_KHR
PRESENT_MODE_FIFO_KHR
VkSurfaceCapabilitiesKHR:
-------------------------
minImageCount = 2
maxImageCount = 64
currentExtent:
width = 256
height = 256
minImageExtent:
width = 256
height = 256
maxImageExtent:
width = 256
height = 256
maxImageArrayLayers = 2048
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:
VK_SURFACE_COUNTER_VBLANK_EXT
VkSurfaceCapabilitiesFullScreenExclusiveEXT:
--------------------------------------------
fullScreenExclusiveSupported = false
Groups:
=======
Device Group Properties (Group 0):
----------------------------------
physicalDeviceCount: count = 1
Intel(R) UHD Graphics 630 (ID: 0)
subsetAllocation = 0
Device Group Present Capabilities (Group 0):
Intel(R) UHD Graphics 630 (ID: 0)
Can present images from the following devices:
Intel(R) UHD Graphics 630 (ID: 0)
Present modes:
DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR
Device Properties and Extensions:
=================================
GPU0:
VkPhysicalDeviceProperties:
---------------------------
apiVersion = 4202627 (1.2.131)
driverVersion = 1646270 (0x191ebe)
vendorID = 0x8086
deviceID = 0x3e92
deviceType = PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU
deviceName = Intel(R) UHD Graphics 630
VkPhysicalDeviceLimits:
-----------------------
maxImageDimension1D = 16384
maxImageDimension2D = 16384
maxImageDimension3D = 2048
maxImageDimensionCube = 16384
maxImageArrayLayers = 2048
maxTexelBufferElements = 134217728
maxUniformBufferRange = 65536
maxStorageBufferRange = 4294967295
maxPushConstantsSize = 256
maxMemoryAllocationCount = 4201842
maxSamplerAllocationCount = 4000
bufferImageGranularity = 0x00000001
sparseAddressSpaceSize = 0x100000000000
maxBoundDescriptorSets = 8
maxPerStageDescriptorSamplers = 64
maxPerStageDescriptorUniformBuffers = 200
maxPerStageDescriptorStorageBuffers = 200
maxPerStageDescriptorSampledImages = 200
maxPerStageDescriptorStorageImages = 16
maxPerStageDescriptorInputAttachments = 8
maxPerStageResources = 200
maxDescriptorSetSamplers = 576
maxDescriptorSetUniformBuffers = 1800
maxDescriptorSetUniformBuffersDynamic = 16
maxDescriptorSetStorageBuffers = 1800
maxDescriptorSetStorageBuffersDynamic = 16
maxDescriptorSetSampledImages = 1800
maxDescriptorSetStorageImages = 144
maxDescriptorSetInputAttachments = 8
maxVertexInputAttributes = 32
maxVertexInputBindings = 32
maxVertexInputAttributeOffset = 2047
maxVertexInputBindingStride = 4095
maxVertexOutputComponents = 128
maxTessellationGenerationLevel = 64
maxTessellationPatchSize = 32
maxTessellationControlPerVertexInputComponents = 128
maxTessellationControlPerVertexOutputComponents = 128
maxTessellationControlPerPatchOutputComponents = 120
maxTessellationControlTotalOutputComponents = 4096
maxTessellationEvaluationInputComponents = 128
maxTessellationEvaluationOutputComponents = 128
maxGeometryShaderInvocations = 32
maxGeometryInputComponents = 128
maxGeometryOutputComponents = 128
maxGeometryOutputVertices = 256
maxGeometryTotalOutputComponents = 1024
maxFragmentInputComponents = 128
maxFragmentOutputAttachments = 8
maxFragmentDualSrcAttachments = 1
maxFragmentCombinedOutputResources = 16
maxComputeSharedMemorySize = 32768
maxComputeWorkGroupCount: count = 3
65536
65536
65536
maxComputeWorkGroupInvocations = 1024
maxComputeWorkGroupSize: count = 3
1024
1024
64
subPixelPrecisionBits = 8
subTexelPrecisionBits = 8
mipmapPrecisionBits = 8
maxDrawIndexedIndexValue = 4294967295
maxDrawIndirectCount = 4294967295
maxSamplerLodBias = 16
maxSamplerAnisotropy = 16
maxViewports = 16
maxViewportDimensions: count = 2
32768
32768
viewportBoundsRange: count = 2
-65536
65535
viewportSubPixelBits = 8
minMemoryMapAlignment = 64
minTexelBufferOffsetAlignment = 0x00000040
minUniformBufferOffsetAlignment = 0x00000040
minStorageBufferOffsetAlignment = 0x00000040
minTexelOffset = -8
maxTexelOffset = 7
minTexelGatherOffset = -32
maxTexelGatherOffset = 31
minInterpolationOffset = -0.5
maxInterpolationOffset = 0.4375
subPixelInterpolationOffsetBits = 4
maxFramebufferWidth = 16384
maxFramebufferHeight = 16384
maxFramebufferLayers = 2048
framebufferColorSampleCounts:
SAMPLE_COUNT_1_BIT
SAMPLE_COUNT_2_BIT
SAMPLE_COUNT_4_BIT
SAMPLE_COUNT_8_BIT
SAMPLE_COUNT_16_BIT
framebufferDepthSampleCounts:
SAMPLE_COUNT_1_BIT
SAMPLE_COUNT_2_BIT
SAMPLE_COUNT_4_BIT
SAMPLE_COUNT_8_BIT
SAMPLE_COUNT_16_BIT
framebufferStencilSampleCounts:
SAMPLE_COUNT_1_BIT
SAMPLE_COUNT_2_BIT
SAMPLE_COUNT_4_BIT
SAMPLE_COUNT_8_BIT
SAMPLE_COUNT_16_BIT
framebufferNoAttachmentsSampleCounts:
SAMPLE_COUNT_1_BIT
SAMPLE_COUNT_2_BIT
SAMPLE_COUNT_4_BIT
SAMPLE_COUNT_8_BIT
SAMPLE_COUNT_16_BIT
maxColorAttachments = 8
sampledImageColorSampleCounts:
SAMPLE_COUNT_1_BIT
SAMPLE_COUNT_2_BIT
SAMPLE_COUNT_4_BIT
SAMPLE_COUNT_8_BIT
SAMPLE_COUNT_16_BIT
sampledImageIntegerSampleCounts:
SAMPLE_COUNT_1_BIT
SAMPLE_COUNT_2_BIT
SAMPLE_COUNT_4_BIT
SAMPLE_COUNT_8_BIT
SAMPLE_COUNT_16_BIT
sampledImageDepthSampleCounts:
SAMPLE_COUNT_1_BIT
SAMPLE_COUNT_2_BIT
SAMPLE_COUNT_4_BIT
SAMPLE_COUNT_8_BIT
SAMPLE_COUNT_16_BIT
sampledImageStencilSampleCounts:
SAMPLE_COUNT_1_BIT
SAMPLE_COUNT_2_BIT
SAMPLE_COUNT_4_BIT
SAMPLE_COUNT_8_BIT
SAMPLE_COUNT_16_BIT
storageImageSampleCounts:
SAMPLE_COUNT_1_BIT
SAMPLE_COUNT_2_BIT
SAMPLE_COUNT_4_BIT
SAMPLE_COUNT_8_BIT
SAMPLE_COUNT_16_BIT
maxSampleMaskWords = 1
timestampComputeAndGraphics = true
timestampPeriod = 83.333
maxClipDistances = 8
maxCullDistances = 8
maxCombinedClipAndCullDistances = 8
discreteQueuePriorities = 2
pointSizeRange: count = 2
0.125
255.875
lineWidthRange: count = 2
0
7.99219
pointSizeGranularity = 0.125
lineWidthGranularity = 0.0078125
strictLines = false
standardSampleLocations = true
optimalBufferCopyOffsetAlignment = 0x00000040
optimalBufferCopyRowPitchAlignment = 0x00000040
nonCoherentAtomSize = 0x00000001
VkPhysicalDeviceSparseProperties:
---------------------------------
residencyStandard2DBlockShape = true
residencyStandard2DMultisampleBlockShape = true
residencyStandard3DBlockShape = true
residencyAlignedMipSize = false
residencyNonResidentStrict = false
VkPhysicalDeviceConservativeRasterizationPropertiesEXT:
-------------------------------------------------------
primitiveOverestimationSize = 0.00195313
maxExtraPrimitiveOverestimationSize = 0
extraPrimitiveOverestimationSizeGranularity = 0
primitiveUnderestimation = false
conservativePointAndLineRasterization = false
degenerateTrianglesRasterized = false
degenerateLinesRasterized = false
fullyCoveredFragmentShaderInputVariable = true
conservativeRasterizationPostDepthCoverage = false
VkPhysicalDeviceDepthStencilResolveProperties:
----------------------------------------------
supportedDepthResolveModes:
RESOLVE_MODE_SAMPLE_ZERO_BIT
RESOLVE_MODE_AVERAGE_BIT
RESOLVE_MODE_MIN_BIT
RESOLVE_MODE_MAX_BIT
supportedStencilResolveModes:
RESOLVE_MODE_SAMPLE_ZERO_BIT
RESOLVE_MODE_MIN_BIT
RESOLVE_MODE_MAX_BIT
independentResolveNone = true
independentResolve = true
VkPhysicalDeviceDescriptorIndexingProperties:
---------------------------------------------
maxUpdateAfterBindDescriptorsInAllPools = 1048576
shaderUniformBufferArrayNonUniformIndexingNative = false
shaderSampledImageArrayNonUniformIndexingNative = false
shaderStorageBufferArrayNonUniformIndexingNative = false
shaderStorageImageArrayNonUniformIndexingNative = false
shaderInputAttachmentArrayNonUniformIndexingNative = false
robustBufferAccessUpdateAfterBind = true
quadDivergentImplicitLod = true
maxPerStageDescriptorUpdateAfterBindSamplers = 1048576
maxPerStageDescriptorUpdateAfterBindUniformBuffers = 1048576
maxPerStageDescriptorUpdateAfterBindStorageBuffers = 1048576
maxPerStageDescriptorUpdateAfterBindSampledImages = 1048576
maxPerStageDescriptorUpdateAfterBindStorageImages = 1048576
maxPerStageDescriptorUpdateAfterBindInputAttachments = 1048576
maxPerStageUpdateAfterBindResources = 1048576
maxDescriptorSetUpdateAfterBindSamplers = 1048576
maxDescriptorSetUpdateAfterBindUniformBuffers = 1048576
maxDescriptorSetUpdateAfterBindUniformBuffersDynamic = 16
maxDescriptorSetUpdateAfterBindStorageBuffers = 1048576
maxDescriptorSetUpdateAfterBindStorageBuffersDynamic = 16
maxDescriptorSetUpdateAfterBindSampledImages = 1048576
maxDescriptorSetUpdateAfterBindStorageImages = 1048576
maxDescriptorSetUpdateAfterBindInputAttachments = 1048576
VkPhysicalDeviceDriverProperties:
---------------------------------
driverID = DRIVER_ID_INTEL_PROPRIETARY_WINDOWS
driverName = Intel Corporation
driverInfo = Intel driver
conformanceVersion = 1.2.0.2
VkPhysicalDeviceExternalMemoryHostPropertiesEXT:
------------------------------------------------
minImportedHostPointerAlignment = 0x00010000
VkPhysicalDeviceFloatControlsProperties:
----------------------------------------
denormBehaviorIndependence = SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL
roundingModeIndependence = SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE
shaderSignedZeroInfNanPreserveFloat16 = true
shaderSignedZeroInfNanPreserveFloat32 = true
shaderSignedZeroInfNanPreserveFloat64 = true
shaderDenormPreserveFloat16 = true
shaderDenormPreserveFloat32 = true
shaderDenormPreserveFloat64 = true
shaderDenormFlushToZeroFloat16 = false
shaderDenormFlushToZeroFloat32 = false
shaderDenormFlushToZeroFloat64 = false
shaderRoundingModeRTEFloat16 = true
shaderRoundingModeRTEFloat32 = true
shaderRoundingModeRTEFloat64 = true
shaderRoundingModeRTZFloat16 = false
shaderRoundingModeRTZFloat32 = false
shaderRoundingModeRTZFloat64 = false
VkPhysicalDeviceIDProperties:
-----------------------------
deviceUUID = 8680923e-00-00-00-000000
driverUUID = 32362e32-302e-3130-302e-3738373000
deviceLUID = d3d100-0000
deviceNodeMask = 1
deviceLUIDValid = true
VkPhysicalDeviceInlineUniformBlockPropertiesEXT:
------------------------------------------------
maxInlineUniformBlockSize = 256
maxPerStageDescriptorInlineUniformBlocks = 4
maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks = 4
maxDescriptorSetInlineUniformBlocks = 4
maxDescriptorSetUpdateAfterBindInlineUniformBlocks = 4
VkPhysicalDeviceMaintenance3Properties:
---------------------------------------
maxPerSetDescriptors = 6160
maxMemoryAllocationSize = 0x401d72800
VkPhysicalDeviceMultiviewProperties:
------------------------------------
maxMultiviewViewCount = 16
maxMultiviewInstanceIndex = 268435454
VkPhysicalDevicePointClippingProperties:
----------------------------------------
pointClippingBehavior = POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY
VkPhysicalDeviceProtectedMemoryProperties:
------------------------------------------
protectedNoFault = false
VkPhysicalDevicePushDescriptorPropertiesKHR:
--------------------------------------------
maxPushDescriptors = 32
VkPhysicalDeviceSampleLocationsPropertiesEXT:
---------------------------------------------
sampleLocationSampleCounts:
SAMPLE_COUNT_1_BIT
SAMPLE_COUNT_2_BIT
SAMPLE_COUNT_4_BIT
SAMPLE_COUNT_8_BIT
SAMPLE_COUNT_16_BIT
maxSampleLocationGridSize:
width = 1
height = 1
sampleLocationCoordinateRange: count = 2
0
0.9375
sampleLocationSubPixelBits = 4
variableSampleLocations = false
VkPhysicalDeviceSamplerFilterMinmaxProperties:
----------------------------------------------
filterMinmaxSingleComponentFormats = true
filterMinmaxImageComponentMapping = true
VkPhysicalDeviceSubgroupProperties:
-----------------------------------
subgroupSize = 32
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
VkPhysicalDeviceSubgroupSizeControlPropertiesEXT:
-------------------------------------------------
minSubgroupSize = 8
maxSubgroupSize = 32
maxComputeWorkgroupSubgroups = 56
requiredSubgroupSizeStages:
SHADER_STAGE_COMPUTE_BIT
SHADER_STAGE_ALL
VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT:
--------------------------------------------------
storageTexelBufferOffsetAlignmentBytes = 0x00000010
storageTexelBufferOffsetSingleTexelAlignment = true
uniformTexelBufferOffsetAlignmentBytes = 0x00000001
uniformTexelBufferOffsetSingleTexelAlignment = true
VkPhysicalDeviceTimelineSemaphoreProperties:
--------------------------------------------
maxTimelineSemaphoreValueDifference = 18446744073709551615
VkPhysicalDeviceTransformFeedbackPropertiesEXT:
-----------------------------------------------
maxTransformFeedbackStreams = 4
maxTransformFeedbackBuffers = 4
maxTransformFeedbackBufferSize = 0x100000000
maxTransformFeedbackStreamDataSize = 512
maxTransformFeedbackBufferDataSize = 512
maxTransformFeedbackBufferDataStride = 2048
transformFeedbackQueries = true
transformFeedbackStreamsLinesTriangles = true
transformFeedbackRasterizationStreamSelect = true
transformFeedbackDraw = true
VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT:
----------------------------------------------------
maxVertexAttribDivisor = 268435455
VkPhysicalDeviceVulkan11Properties:
-----------------------------------
deviceUUID = 8680923e-00-00-00-000000
driverUUID = 32362e32-302e-3130-302e-3738373000
deviceLUID = d3d100-0000
deviceNodeMask = 1
deviceLUIDValid = true
subgroupSize = 32
subgroupSupportedStages:
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
subgroupSupportedOperations:
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
subgroupQuadOperationsInAllStages = true
pointClippingBehavior = POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY
maxMultiviewViewCount = 16
maxMultiviewInstanceIndex = 268435454
protectedNoFault = false
maxPerSetDescriptors = 6160
maxMemoryAllocationSize = 0x401d72800
VkPhysicalDeviceVulkan12Properties:
-----------------------------------
driverID = DRIVER_ID_INTEL_PROPRIETARY_WINDOWS
driverName = Intel Corporation
driverInfo = Intel driver
conformanceVersion = 1.2.0.2
denormBehaviorIndependence = SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL
roundingModeIndependence = SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE
shaderSignedZeroInfNanPreserveFloat16 = true
shaderSignedZeroInfNanPreserveFloat32 = true
shaderSignedZeroInfNanPreserveFloat64 = true
shaderDenormPreserveFloat16 = true
shaderDenormPreserveFloat32 = true
shaderDenormPreserveFloat64 = true
shaderDenormFlushToZeroFloat16 = false
shaderDenormFlushToZeroFloat32 = false
shaderDenormFlushToZeroFloat64 = false
shaderRoundingModeRTEFloat16 = true
shaderRoundingModeRTEFloat32 = true
shaderRoundingModeRTEFloat64 = true
shaderRoundingModeRTZFloat16 = false
shaderRoundingModeRTZFloat32 = false
shaderRoundingModeRTZFloat64 = false
maxUpdateAfterBindDescriptorsInAllPools = 1048576
shaderUniformBufferArrayNonUniformIndexingNative = false
shaderSampledImageArrayNonUniformIndexingNative = false
shaderStorageBufferArrayNonUniformIndexingNative = false
shaderStorageImageArrayNonUniformIndexingNative = false
shaderInputAttachmentArrayNonUniformIndexingNative = false
robustBufferAccessUpdateAfterBind = true
quadDivergentImplicitLod = true
maxPerStageDescriptorUpdateAfterBindSamplers = 1048576
maxPerStageDescriptorUpdateAfterBindUniformBuffers = 1048576
maxPerStageDescriptorUpdateAfterBindStorageBuffers = 1048576
maxPerStageDescriptorUpdateAfterBindSampledImages = 1048576
maxPerStageDescriptorUpdateAfterBindStorageImages = 1048576
maxPerStageDescriptorUpdateAfterBindInputAttachments = 1048576
maxPerStageUpdateAfterBindResources = 1048576
maxDescriptorSetUpdateAfterBindSamplers = 1048576
maxDescriptorSetUpdateAfterBindUniformBuffers = 1048576
maxDescriptorSetUpdateAfterBindUniformBuffersDynamic = 16
maxDescriptorSetUpdateAfterBindStorageBuffers = 1048576
maxDescriptorSetUpdateAfterBindStorageBuffersDynamic = 16
maxDescriptorSetUpdateAfterBindSampledImages = 1048576
maxDescriptorSetUpdateAfterBindStorageImages = 1048576
maxDescriptorSetUpdateAfterBindInputAttachments = 1048576
supportedDepthResolveModes:
RESOLVE_MODE_SAMPLE_ZERO_BIT
RESOLVE_MODE_AVERAGE_BIT
RESOLVE_MODE_MIN_BIT
RESOLVE_MODE_MAX_BIT
supportedStencilResolveModes:
RESOLVE_MODE_SAMPLE_ZERO_BIT
RESOLVE_MODE_MIN_BIT
RESOLVE_MODE_MAX_BIT
independentResolveNone = true
independentResolve = true
filterMinmaxSingleComponentFormats = true
filterMinmaxImageComponentMapping = true
maxTimelineSemaphoreValueDifference = 18446744073709551615
framebufferIntegerColorSampleCounts:
SAMPLE_COUNT_1_BIT
SAMPLE_COUNT_2_BIT
SAMPLE_COUNT_4_BIT
SAMPLE_COUNT_8_BIT
SAMPLE_COUNT_16_BIT
Device Extensions: count = 72
VK_EXT_buffer_device_address : extension revision 2
VK_EXT_conditional_rendering : extension revision 2
VK_EXT_conservative_rasterization : extension revision 1
VK_EXT_depth_clip_enable : extension revision 1
VK_EXT_descriptor_indexing : extension revision 2
VK_EXT_external_memory_host : extension revision 1
VK_EXT_fragment_shader_interlock : extension revision 1
VK_EXT_full_screen_exclusive : extension revision 4
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_pipeline_creation_feedback : extension revision 1
VK_EXT_post_depth_coverage : extension revision 1
VK_EXT_sample_locations : extension revision 1
VK_EXT_sampler_filter_minmax : extension revision 2
VK_EXT_scalar_block_layout : extension revision 1
VK_EXT_separate_stencil_usage : extension revision 1
VK_EXT_shader_demote_to_helper_invocation : 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_subgroup_size_control : extension revision 2
VK_EXT_texel_buffer_alignment : extension revision 1
VK_EXT_transform_feedback : extension revision 1
VK_EXT_vertex_attribute_divisor : extension revision 3
VK_INTEL_performance_query : 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_buffer_device_address : 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 4
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_win32 : extension revision 1
VK_KHR_external_memory : extension revision 1
VK_KHR_external_memory_win32 : extension revision 1
VK_KHR_external_semaphore : extension revision 1
VK_KHR_external_semaphore_win32 : 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_maintenance1 : extension revision 1
VK_KHR_maintenance2 : extension revision 1
VK_KHR_maintenance3 : extension revision 1
VK_KHR_multiview : 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 3
VK_KHR_sampler_ycbcr_conversion : extension revision 14
VK_KHR_separate_depth_stencil_layouts : 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 4
VK_KHR_shader_subgroup_extended_types : 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 70
VK_KHR_swapchain_mutable_format : extension revision 1
VK_KHR_timeline_semaphore : extension revision 2
VK_KHR_uniform_buffer_standard_layout : extension revision 1
VK_KHR_variable_pointers : extension revision 1
VK_KHR_vulkan_memory_model : extension revision 3
VK_KHR_win32_keyed_mutex : extension revision 1
VK_NV_device_diagnostic_checkpoints : extension revision 2
VkQueueFamilyProperties:
========================
queueProperties[0]:
------------------
minImageTransferGranularity = (1,1,1)
queueCount = 1
queueFlags = QUEUE_GRAPHICS | QUEUE_COMPUTE | QUEUE_TRANSFER | QUEUE_SPARSE_BINDING
timestampValidBits = 36
present support = false
VkPhysicalDeviceMemoryProperties:
=================================
memoryHeaps: count = 1
memoryHeaps[0]:
size = 17210746880 (0x401d72800) (16.03 GiB)
budget = 15368876236
usage = 0
flags:
MEMORY_HEAP_DEVICE_LOCAL_BIT
memoryTypes: count = 3
memoryTypes[0]:
heapIndex = 0
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_X8_D24_UNORM_PACK32, FORMAT_D32_SFLOAT, FORMAT_D24_UNORM_S8_UINT, FORMAT_D32_SFLOAT_S8_UINT
IMAGE_TILING_LINEAR: color images
memoryTypes[1]:
heapIndex = 0
propertyFlags = 0x000f:
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_D24_UNORM_S8_UINT, FORMAT_D32_SFLOAT_S8_UINT
IMAGE_TILING_LINEAR: color images
memoryTypes[2]:
heapIndex = 0
propertyFlags = 0x0001:
MEMORY_PROPERTY_DEVICE_LOCAL_BIT
usable for:
IMAGE_TILING_OPTIMAL: color images, FORMAT_D16_UNORM, FORMAT_X8_D24_UNORM_PACK32, FORMAT_D32_SFLOAT, FORMAT_D24_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 = false
wideLines = true
largePoints = true
alphaToOne = true
multiViewport = true
samplerAnisotropy = true
textureCompressionETC2 = true
textureCompressionASTC_LDR = true
textureCompressionBC = true
occlusionQueryPrecise = true
pipelineStatisticsQuery = true
vertexPipelineStoresAndAtomics = true
fragmentStoresAndAtomics = true
shaderTessellationAndGeometryPointSize = true
shaderImageGatherExtended = true
shaderStorageImageExtendedFormats = true
shaderStorageImageMultisample = true
shaderStorageImageReadWithoutFormat = false
shaderStorageImageWriteWithoutFormat = true
shaderUniformBufferArrayDynamicIndexing = true
shaderSampledImageArrayDynamicIndexing = true
shaderStorageBufferArrayDynamicIndexing = true
shaderStorageImageArrayDynamicIndexing = true
shaderClipDistance = true
shaderCullDistance = true
shaderFloat64 = true
shaderInt64 = true
shaderInt16 = true
shaderResourceResidency = true
shaderResourceMinLod = false
sparseBinding = true
sparseResidencyBuffer = true
sparseResidencyImage2D = true
sparseResidencyImage3D = true
sparseResidency2Samples = true
sparseResidency4Samples = true
sparseResidency8Samples = true
sparseResidency16Samples = true
sparseResidencyAliased = true
variableMultisampleRate = true
inheritedQueries = true
VkPhysicalDevice16BitStorageFeatures:
-------------------------------------
storageBuffer16BitAccess = true
uniformAndStorageBuffer16BitAccess = true
storagePushConstant16 = true
storageInputOutput16 = true
VkPhysicalDevice8BitStorageFeatures:
------------------------------------
storageBuffer8BitAccess = true
uniformAndStorageBuffer8BitAccess = true
storagePushConstant8 = true
VkPhysicalDeviceBufferDeviceAddressFeatures:
--------------------------------------------
bufferDeviceAddress = true
bufferDeviceAddressCaptureReplay = false
bufferDeviceAddressMultiDevice = true
VkPhysicalDeviceBufferDeviceAddressFeaturesEXT:
-----------------------------------------------
bufferDeviceAddress = true
bufferDeviceAddressCaptureReplay = false
bufferDeviceAddressMultiDevice = true
VkPhysicalDeviceConditionalRenderingFeaturesEXT:
------------------------------------------------
conditionalRendering = true
inheritedConditionalRendering = true
VkPhysicalDeviceDepthClipEnableFeaturesEXT:
-------------------------------------------
depthClipEnable = true
VkPhysicalDeviceDescriptorIndexingFeatures:
-------------------------------------------
shaderInputAttachmentArrayDynamicIndexing = true
shaderUniformTexelBufferArrayDynamicIndexing = true
shaderStorageTexelBufferArrayDynamicIndexing = true
shaderUniformBufferArrayNonUniformIndexing = false
shaderSampledImageArrayNonUniformIndexing = true
shaderStorageBufferArrayNonUniformIndexing = true
shaderStorageImageArrayNonUniformIndexing = false
shaderInputAttachmentArrayNonUniformIndexing = false
shaderUniformTexelBufferArrayNonUniformIndexing = true
shaderStorageTexelBufferArrayNonUniformIndexing = false
descriptorBindingUniformBufferUpdateAfterBind = true
descriptorBindingSampledImageUpdateAfterBind = true
descriptorBindingStorageImageUpdateAfterBind = true
descriptorBindingStorageBufferUpdateAfterBind = true
descriptorBindingUniformTexelBufferUpdateAfterBind = true
descriptorBindingStorageTexelBufferUpdateAfterBind = true
descriptorBindingUpdateUnusedWhilePending = true
descriptorBindingPartiallyBound = true
descriptorBindingVariableDescriptorCount = true
runtimeDescriptorArray = true
VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT:
---------------------------------------------------
fragmentShaderSampleInterlock = true
fragmentShaderPixelInterlock = true
fragmentShaderShadingRateInterlock = false
VkPhysicalDeviceHostQueryResetFeatures:
---------------------------------------
hostQueryReset = true
VkPhysicalDeviceImagelessFramebufferFeatures:
---------------------------------------------
imagelessFramebuffer = true
VkPhysicalDeviceIndexTypeUint8FeaturesEXT:
------------------------------------------
indexTypeUint8 = true
VkPhysicalDeviceInlineUniformBlockFeaturesEXT:
----------------------------------------------
inlineUniformBlock = true
descriptorBindingInlineUniformBlockUpdateAfterBind = true
VkPhysicalDeviceMultiviewFeatures:
----------------------------------
multiview = true
multiviewGeometryShader = true
multiviewTessellationShader = true
VkPhysicalDeviceProtectedMemoryFeatures:
----------------------------------------
protectedMemory = false
VkPhysicalDeviceSamplerYcbcrConversionFeatures:
-----------------------------------------------
samplerYcbcrConversion = false
VkPhysicalDeviceScalarBlockLayoutFeatures:
------------------------------------------
scalarBlockLayout = true
VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures:
----------------------------------------------------
separateDepthStencilLayouts = true
VkPhysicalDeviceShaderAtomicInt64Features:
------------------------------------------
shaderBufferInt64Atomics = false
shaderSharedInt64Atomics = false
VkPhysicalDeviceShaderClockFeaturesKHR:
---------------------------------------
shaderSubgroupClock = true
shaderDeviceClock = false
VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT:
----------------------------------------------------------
shaderDemoteToHelperInvocation = true
VkPhysicalDeviceShaderDrawParametersFeatures:
---------------------------------------------
shaderDrawParameters = true
VkPhysicalDeviceShaderFloat16Int8Features:
------------------------------------------
shaderFloat16 = true
shaderInt8 = true
VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures:
----------------------------------------------------
shaderSubgroupExtendedTypes = true
VkPhysicalDeviceSubgroupSizeControlFeaturesEXT:
-----------------------------------------------
subgroupSizeControl = true
computeFullSubgroups = true
VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT:
------------------------------------------------
texelBufferAlignment = true
VkPhysicalDeviceTimelineSemaphoreFeatures:
------------------------------------------
timelineSemaphore = true
VkPhysicalDeviceTransformFeedbackFeaturesEXT:
---------------------------------------------
transformFeedback = true
geometryStreams = true
VkPhysicalDeviceUniformBufferStandardLayoutFeatures:
----------------------------------------------------
uniformBufferStandardLayout = true
VkPhysicalDeviceVariablePointersFeatures:
-----------------------------------------
variablePointersStorageBuffer = true
variablePointers = true
VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT:
--------------------------------------------------
vertexAttributeInstanceRateDivisor = true
vertexAttributeInstanceRateZeroDivisor = true
VkPhysicalDeviceVulkan11Features:
---------------------------------
storageBuffer16BitAccess = true
uniformAndStorageBuffer16BitAccess = true
storagePushConstant16 = true
storageInputOutput16 = true
multiview = true
multiviewGeometryShader = true
multiviewTessellationShader = true
variablePointersStorageBuffer = true
variablePointers = true
protectedMemory = false
samplerYcbcrConversion = false
shaderDrawParameters = true
VkPhysicalDeviceVulkan12Features:
---------------------------------
samplerMirrorClampToEdge = true
drawIndirectCount = true
storageBuffer8BitAccess = true
uniformAndStorageBuffer8BitAccess = true
storagePushConstant8 = true
shaderBufferInt64Atomics = false
shaderSharedInt64Atomics = false
shaderFloat16 = true
shaderInt8 = true
descriptorIndexing = true
shaderInputAttachmentArrayDynamicIndexing = true
shaderUniformTexelBufferArrayDynamicIndexing = true
shaderStorageTexelBufferArrayDynamicIndexing = true
shaderUniformBufferArrayNonUniformIndexing = false
shaderSampledImageArrayNonUniformIndexing = true
shaderStorageBufferArrayNonUniformIndexing = true
shaderStorageImageArrayNonUniformIndexing = false
shaderInputAttachmentArrayNonUniformIndexing = false
shaderUniformTexelBufferArrayNonUniformIndexing = true
shaderStorageTexelBufferArrayNonUniformIndexing = false
descriptorBindingUniformBufferUpdateAfterBind = true
descriptorBindingSampledImageUpdateAfterBind = true
descriptorBindingStorageImageUpdateAfterBind = true
descriptorBindingStorageBufferUpdateAfterBind = true
descriptorBindingUniformTexelBufferUpdateAfterBind = true
descriptorBindingStorageTexelBufferUpdateAfterBind = true
descriptorBindingUpdateUnusedWhilePending = true
descriptorBindingPartiallyBound = true
descriptorBindingVariableDescriptorCount = true
runtimeDescriptorArray = true
samplerFilterMinmax = true
scalarBlockLayout = true
imagelessFramebuffer = true
uniformBufferStandardLayout = true
shaderSubgroupExtendedTypes = true
separateDepthStencilLayouts = true
hostQueryReset = true
timelineSemaphore = true
bufferDeviceAddress = true
bufferDeviceAddressCaptureReplay = false
bufferDeviceAddressMultiDevice = true
vulkanMemoryModel = true
vulkanMemoryModelDeviceScope = true
vulkanMemoryModelAvailabilityVisibilityChains = true
shaderOutputViewportIndex = true
shaderOutputLayer = true
subgroupBroadcastDynamicId = true
VkPhysicalDeviceVulkanMemoryModelFeatures:
------------------------------------------
vulkanMemoryModel = true
vulkanMemoryModelDeviceScope = true
vulkanMemoryModelAvailabilityVisibilityChains = true
C:\>
|
在 VMware 裡使用 Windows 10 (Guest OS) 測試
C:\>vulkaninfo 'vulkaninfo' 不是內部或外部命令、可執行的程式或批次檔。 C:\> |
(完)



沒有留言:
張貼留言