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 /slang-gfx.h | |
| parent | 72ce0584d273ac5f04c3d9096f3523da68cc6fc1 (diff) | |
Initial version of DeviceLimits implemented in d3d12, d3d11, vulkan and cuda (#2496)
Diffstat (limited to 'slang-gfx.h')
| -rw-r--r-- | slang-gfx.h | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/slang-gfx.h b/slang-gfx.h index 7b8107179..590d7d5c7 100644 --- a/slang-gfx.h +++ b/slang-gfx.h @@ -2122,10 +2122,52 @@ private: ComPtr<ISlangBlob> m_blob; }; +struct DeviceLimits +{ + /// Maximum dimension for 1D textures. + uint32_t maxTextureDimension1D; + /// Maximum dimensions for 2D textures. + uint32_t maxTextureDimension2D; + /// Maximum dimensions for 3D textures. + uint32_t maxTextureDimension3D; + /// Maximum dimensions for cube textures. + uint32_t maxTextureDimensionCube; + /// Maximum number of texture layers. + uint32_t maxTextureArrayLayers; + + /// Maximum number of vertex input elements in a graphics pipeline. + uint32_t maxVertexInputElements; + /// Maximum offset of a vertex input element in the vertex stream. + uint32_t maxVertexInputElementOffset; + /// Maximum number of vertex streams in a graphics pipeline. + uint32_t maxVertexStreams; + /// Maximum stride of a vertex stream. + uint32_t maxVertexStreamStride; + + /// Maximum number of threads per thread group. + uint32_t maxComputeThreadsPerGroup; + /// Maximum dimensions of a thread group. + uint32_t maxComputeThreadGroupSize[3]; + /// Maximum number of thread groups per dimension in a single dispatch. + uint32_t maxComputeDispatchThreadGroups[3]; + + /// Maximum number of viewports per pipeline. + uint32_t maxViewports; + /// Maximum viewport dimensions. + uint32_t maxViewportDimensions[2]; + /// Maximum framebuffer dimensions. + uint32_t maxFramebufferDimensions[3]; + + /// Maximum samplers visible in a shader stage. + uint32_t maxShaderVisibleSamplers; +}; + struct DeviceInfo { DeviceType deviceType; + DeviceLimits limits; + BindingStyle bindingStyle; ProjectionStyle projectionStyle; |
