.. | .. |
---|
1 | 1 | /* SPDX-License-Identifier: GPL-2.0 OR MIT */ |
---|
2 | 2 | /********************************************************** |
---|
3 | | - * Copyright 2007-2015 VMware, Inc. |
---|
| 3 | + * Copyright 2007-2019 VMware, Inc. |
---|
4 | 4 | * |
---|
5 | 5 | * Permission is hereby granted, free of charge, to any person |
---|
6 | 6 | * obtaining a copy of this software and associated documentation |
---|
.. | .. |
---|
40 | 40 | #include "includeCheck.h" |
---|
41 | 41 | |
---|
42 | 42 | #define SVGA3D_NUM_CLIPPLANES 6 |
---|
| 43 | +#define SVGA3D_MAX_CONTEXT_IDS 256 |
---|
| 44 | +#define SVGA3D_MAX_SURFACE_IDS (32 * 1024) |
---|
| 45 | + |
---|
| 46 | +/* |
---|
| 47 | + * While there are separate bind-points for RenderTargetViews and |
---|
| 48 | + * UnorderedAccessViews in a DXContext, there is in fact one shared |
---|
| 49 | + * semantic space that the guest-driver can use on any given draw call. |
---|
| 50 | + * So there are really only 8 slots that can be spilt up between them, with the |
---|
| 51 | + * spliceIndex controlling where the UAV's sit in the collapsed array. |
---|
| 52 | + */ |
---|
43 | 53 | #define SVGA3D_MAX_RENDER_TARGETS 8 |
---|
44 | 54 | #define SVGA3D_MAX_SIMULTANEOUS_RENDER_TARGETS (SVGA3D_MAX_RENDER_TARGETS) |
---|
45 | 55 | #define SVGA3D_MAX_UAVIEWS 8 |
---|
46 | | -#define SVGA3D_MAX_CONTEXT_IDS 256 |
---|
47 | | -#define SVGA3D_MAX_SURFACE_IDS (32 * 1024) |
---|
| 56 | +#define SVGA3D_DX11_1_MAX_UAVIEWS 64 |
---|
| 57 | + |
---|
| 58 | +/* |
---|
| 59 | + * Maximum canonical size of a surface in host-backed mode (pre-GBObjects). |
---|
| 60 | + */ |
---|
| 61 | +#define SVGA3D_HB_MAX_SURFACE_SIZE MBYTES_2_BYTES(128) |
---|
48 | 62 | |
---|
49 | 63 | /* |
---|
50 | 64 | * Maximum ID a shader can be assigned on a given context. |
---|
.. | .. |
---|
59 | 73 | #define SVGA3D_NUM_TEXTURE_UNITS 32 |
---|
60 | 74 | #define SVGA3D_NUM_LIGHTS 8 |
---|
61 | 75 | |
---|
| 76 | +#define SVGA3D_MAX_VIDEOPROCESSOR_SAMPLERS 32 |
---|
| 77 | + |
---|
62 | 78 | /* |
---|
63 | 79 | * Maximum size in dwords of shader text the SVGA device will allow. |
---|
64 | 80 | * Currently 8 MB. |
---|
.. | .. |
---|
66 | 82 | #define SVGA3D_MAX_SHADER_MEMORY_BYTES (8 * 1024 * 1024) |
---|
67 | 83 | #define SVGA3D_MAX_SHADER_MEMORY (SVGA3D_MAX_SHADER_MEMORY_BYTES / \ |
---|
68 | 84 | sizeof(uint32)) |
---|
| 85 | + |
---|
| 86 | +/* |
---|
| 87 | + * The maximum value of threadGroupCount in each dimension |
---|
| 88 | + */ |
---|
| 89 | +#define SVGA3D_MAX_SHADER_THREAD_GROUPS 65535 |
---|
69 | 90 | |
---|
70 | 91 | #define SVGA3D_MAX_CLIP_PLANES 6 |
---|
71 | 92 | |
---|
.. | .. |
---|
85 | 106 | /* |
---|
86 | 107 | * Maximum number of array indexes in a GB surface (with DX enabled). |
---|
87 | 108 | */ |
---|
88 | | -#define SVGA3D_MAX_SURFACE_ARRAYSIZE 512 |
---|
| 109 | +#define SVGA3D_SM4_MAX_SURFACE_ARRAYSIZE 512 |
---|
| 110 | +#define SVGA3D_SM5_MAX_SURFACE_ARRAYSIZE 2048 |
---|
| 111 | +#define SVGA3D_MAX_SURFACE_ARRAYSIZE SVGA3D_SM5_MAX_SURFACE_ARRAYSIZE |
---|
89 | 112 | |
---|
90 | 113 | /* |
---|
91 | 114 | * The maximum number of vertex arrays we're guaranteed to support in |
---|
.. | .. |
---|
99 | 122 | */ |
---|
100 | 123 | #define SVGA3D_MAX_DRAW_PRIMITIVE_RANGES 32 |
---|
101 | 124 | |
---|
| 125 | +/* |
---|
| 126 | + * The maximum number of samples that can be contained in a surface. |
---|
| 127 | + */ |
---|
| 128 | +#define SVGA3D_MAX_SAMPLES 8 |
---|
| 129 | + |
---|
102 | 130 | #endif /* _SVGA3D_LIMITS_H_ */ |
---|