Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 OR MIT */
0002 /*
0003  * Copyright 2012-2021 VMware, Inc.
0004  *
0005  * Permission is hereby granted, free of charge, to any person
0006  * obtaining a copy of this software and associated documentation
0007  * files (the "Software"), to deal in the Software without
0008  * restriction, including without limitation the rights to use, copy,
0009  * modify, merge, publish, distribute, sublicense, and/or sell copies
0010  * of the Software, and to permit persons to whom the Software is
0011  * furnished to do so, subject to the following conditions:
0012  *
0013  * The above copyright notice and this permission notice shall be
0014  * included in all copies or substantial portions of the Software.
0015  *
0016  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
0017  * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
0018  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
0019  * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
0020  * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
0021  * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
0022  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
0023  * SOFTWARE.
0024  *
0025  */
0026 
0027 /*
0028  * svga3d_limits.h --
0029  *
0030  *    SVGA 3d hardware limits
0031  */
0032 
0033 
0034 
0035 #ifndef _SVGA3D_LIMITS_H_
0036 #define _SVGA3D_LIMITS_H_
0037 
0038 #define SVGA3D_HB_MAX_CONTEXT_IDS 256
0039 #define SVGA3D_HB_MAX_SURFACE_IDS (32 * 1024)
0040 
0041 #define SVGA3D_DX_MAX_RENDER_TARGETS 8
0042 #define SVGA3D_DX11_MAX_UAVIEWS 8
0043 #define SVGA3D_DX11_1_MAX_UAVIEWS 64
0044 #define SVGA3D_MAX_UAVIEWS (SVGA3D_DX11_1_MAX_UAVIEWS)
0045 #define SVGA3D_DX11_MAX_SIMULTANEOUS_RTUAV (SVGA3D_DX11_MAX_UAVIEWS)
0046 #define SVGA3D_DX11_1_MAX_SIMULTANEOUS_RTUAV (SVGA3D_DX11_1_MAX_UAVIEWS)
0047 #define SVGA3D_MAX_SIMULTANEOUS_RTUAV (SVGA3D_MAX_UAVIEWS)
0048 
0049 #define SVGA3D_HB_MAX_SURFACE_SIZE MBYTES_2_BYTES(128)
0050 
0051 #define SVGA3D_MAX_SHADERIDS 5000
0052 
0053 #define SVGA3D_MAX_SIMULTANEOUS_SHADERS 20000
0054 
0055 #define SVGA3D_NUM_TEXTURE_UNITS 32
0056 #define SVGA3D_NUM_LIGHTS 8
0057 
0058 #define SVGA3D_MAX_VIDEOPROCESSOR_SAMPLERS 32
0059 
0060 #define SVGA3D_MAX_SHADER_MEMORY_BYTES (8 * 1024 * 1024)
0061 #define SVGA3D_MAX_SHADER_MEMORY                                               \
0062     (SVGA3D_MAX_SHADER_MEMORY_BYTES / sizeof(uint32))
0063 
0064 #define SVGA3D_MAX_SHADER_THREAD_GROUPS 65535
0065 
0066 #define SVGA3D_MAX_CLIP_PLANES 6
0067 
0068 #define SVGA3D_MAX_TEXTURE_COORDS 8
0069 
0070 #define SVGA3D_MAX_SURFACE_FACES 6
0071 
0072 #define SVGA3D_SM4_MAX_SURFACE_ARRAYSIZE 512
0073 #define SVGA3D_SM5_MAX_SURFACE_ARRAYSIZE 2048
0074 #define SVGA3D_MAX_SURFACE_ARRAYSIZE SVGA3D_SM5_MAX_SURFACE_ARRAYSIZE
0075 
0076 #define SVGA3D_MAX_VERTEX_ARRAYS 32
0077 
0078 #define SVGA3D_MAX_DRAW_PRIMITIVE_RANGES 32
0079 
0080 #define SVGA3D_MAX_SAMPLES 8
0081 
0082 #define SVGA3D_MIN_SBX_DATA_SIZE (GBYTES_2_BYTES(1))
0083 #define SVGA3D_MAX_SBX_DATA_SIZE (GBYTES_2_BYTES(4))
0084 
0085 #define SVGA3D_MIN_SBX_DATA_SIZE_DVM (MBYTES_2_BYTES(900))
0086 #define SVGA3D_MAX_SBX_DATA_SIZE_DVM (MBYTES_2_BYTES(910))
0087 #endif