Full support for translation and compilation of shaders in Metal, using GPUShaderCreateInfo. Includes render pipeline state creation and management, enabling all standard GPU viewport rendering features in Metal. Authored by Apple: Michael Parkin-White, Marco Giordano Ref T96261 Reviewed By: fclem Maniphest Tasks: T96261 Differential Revision: https://developer.blender.org/D15563
33 lines
1.2 KiB
C++
33 lines
1.2 KiB
C++
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
|
|
|
/* Global parameters. */
|
|
#define MTL_SSBO_VERTEX_FETCH_MAX_VBOS 6 /* buffer bind 0..5 */
|
|
#define MTL_SSBO_VERTEX_FETCH_IBO_INDEX MTL_SSBO_VERTEX_FETCH_MAX_VBOS
|
|
|
|
/* Add Types as needed (Also need to be added to mtl_shader.h). */
|
|
#define GPU_SHADER_ATTR_TYPE_FLOAT 0
|
|
#define GPU_SHADER_ATTR_TYPE_INT 1
|
|
#define GPU_SHADER_ATTR_TYPE_SHORT 2
|
|
#define GPU_SHADER_ATTR_TYPE_CHAR 3
|
|
#define GPU_SHADER_ATTR_TYPE_VEC2 4
|
|
#define GPU_SHADER_ATTR_TYPE_VEC3 5
|
|
#define GPU_SHADER_ATTR_TYPE_VEC4 6
|
|
#define GPU_SHADER_ATTR_TYPE_UVEC2 7
|
|
#define GPU_SHADER_ATTR_TYPE_UVEC3 8
|
|
#define GPU_SHADER_ATTR_TYPE_UVEC4 9
|
|
#define GPU_SHADER_ATTR_TYPE_IVEC2 10
|
|
#define GPU_SHADER_ATTR_TYPE_IVEC3 11
|
|
#define GPU_SHADER_ATTR_TYPE_IVEC4 12
|
|
#define GPU_SHADER_ATTR_TYPE_MAT3 13
|
|
#define GPU_SHADER_ATTR_TYPE_MAT4 14
|
|
#define GPU_SHADER_ATTR_TYPE_UCHAR_NORM 15
|
|
#define GPU_SHADER_ATTR_TYPE_UCHAR2_NORM 16
|
|
#define GPU_SHADER_ATTR_TYPE_UCHAR3_NORM 17
|
|
#define GPU_SHADER_ATTR_TYPE_UCHAR4_NORM 18
|
|
#define GPU_SHADER_ATTR_TYPE_INT1010102_NORM 19
|
|
#define GPU_SHADER_ATTR_TYPE_SHORT3_NORM 20
|
|
#define GPU_SHADER_ATTR_TYPE_CHAR2 21
|
|
#define GPU_SHADER_ATTR_TYPE_CHAR3 22
|
|
#define GPU_SHADER_ATTR_TYPE_CHAR4 23
|
|
#define GPU_SHADER_ATTR_TYPE_UINT 24
|