diff options
| author | skallweitNV <64953474+skallweitNV@users.noreply.github.com> | 2022-11-07 17:59:15 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-11-07 08:59:15 -0800 |
| commit | ea99c274dea12fffdc89a8d4eeefcbb670232ba8 (patch) | |
| tree | fde86d173a4cca226433ec689c10dcc173b4fd16 /tools/gfx/vulkan/vk-device.cpp | |
| parent | 72ce0584d273ac5f04c3d9096f3523da68cc6fc1 (diff) | |
Initial version of DeviceLimits implemented in d3d12, d3d11, vulkan and cuda (#2496)
Diffstat (limited to 'tools/gfx/vulkan/vk-device.cpp')
| -rw-r--r-- | tools/gfx/vulkan/vk-device.cpp | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/tools/gfx/vulkan/vk-device.cpp b/tools/gfx/vulkan/vk-device.cpp index e4e707001..d182a066d 100644 --- a/tools/gfx/vulkan/vk-device.cpp +++ b/tools/gfx/vulkan/vk-device.cpp @@ -321,6 +321,40 @@ Result DeviceImpl::initVulkanInstanceAndDevice( // Compute timestamp frequency. m_info.timestampFrequency = uint64_t(1e9 / basicProps.limits.timestampPeriod); + // Get device limits. + { + DeviceLimits limits = {}; + limits.maxTextureDimension1D = basicProps.limits.maxImageDimension1D; + limits.maxTextureDimension2D = basicProps.limits.maxImageDimension2D; + limits.maxTextureDimension3D = basicProps.limits.maxImageDimension3D; + limits.maxTextureDimensionCube = basicProps.limits.maxImageDimensionCube; + limits.maxTextureArrayLayers = basicProps.limits.maxImageArrayLayers; + + limits.maxVertexInputElements = basicProps.limits.maxVertexInputAttributes; + limits.maxVertexInputElementOffset = basicProps.limits.maxVertexInputAttributeOffset; + limits.maxVertexStreams = basicProps.limits.maxVertexInputBindings; + limits.maxVertexStreamStride = basicProps.limits.maxVertexInputBindingStride; + + limits.maxComputeThreadsPerGroup = basicProps.limits.maxComputeWorkGroupInvocations; + limits.maxComputeThreadGroupSize[0] = basicProps.limits.maxComputeWorkGroupSize[0]; + limits.maxComputeThreadGroupSize[1] = basicProps.limits.maxComputeWorkGroupSize[1]; + limits.maxComputeThreadGroupSize[2] = basicProps.limits.maxComputeWorkGroupSize[2]; + limits.maxComputeDispatchThreadGroups[0] = basicProps.limits.maxComputeWorkGroupCount[0]; + limits.maxComputeDispatchThreadGroups[1] = basicProps.limits.maxComputeWorkGroupCount[1]; + limits.maxComputeDispatchThreadGroups[2] = basicProps.limits.maxComputeWorkGroupCount[2]; + + limits.maxViewports = basicProps.limits.maxViewports; + limits.maxViewportDimensions[0] = basicProps.limits.maxViewportDimensions[0]; + limits.maxViewportDimensions[1] = basicProps.limits.maxViewportDimensions[1]; + limits.maxFramebufferDimensions[0] = basicProps.limits.maxFramebufferWidth; + limits.maxFramebufferDimensions[1] = basicProps.limits.maxFramebufferHeight; + limits.maxFramebufferDimensions[2] = basicProps.limits.maxFramebufferLayers; + + limits.maxShaderVisibleSamplers = basicProps.limits.maxPerStageDescriptorSamplers; + + m_info.limits = limits; + } + // Get the API version const uint32_t majorVersion = VK_VERSION_MAJOR(basicProps.apiVersion); const uint32_t minorVersion = VK_VERSION_MINOR(basicProps.apiVersion); |
