summaryrefslogtreecommitdiff
path: root/slang-gfx.h
diff options
context:
space:
mode:
authorskallweitNV <64953474+skallweitNV@users.noreply.github.com>2022-11-07 17:59:15 +0100
committerGitHub <noreply@github.com>2022-11-07 08:59:15 -0800
commitea99c274dea12fffdc89a8d4eeefcbb670232ba8 (patch)
treefde86d173a4cca226433ec689c10dcc173b4fd16 /slang-gfx.h
parent72ce0584d273ac5f04c3d9096f3523da68cc6fc1 (diff)
Initial version of DeviceLimits implemented in d3d12, d3d11, vulkan and cuda (#2496)
Diffstat (limited to 'slang-gfx.h')
-rw-r--r--slang-gfx.h42
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;