Metal: MTLShader and MTLShaderGenerator implementation.

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
This commit is contained in:
Thomas Dinges
2022-09-01 22:22:32 +02:00
committed by Clément Foucault
parent ac07fb38a1
commit cc8ea6ac67
42 changed files with 9252 additions and 213 deletions

View File

@@ -43,20 +43,23 @@
# define sqrtf sqrt
# define expf exp
# define float2 vec2
# define float3 vec3
# define float4 vec4
# define float4x4 mat4
# define int2 ivec2
# define int3 ivec3
# define int4 ivec4
# define uint2 uvec2
# define uint3 uvec3
# define uint4 uvec4
# define bool1 bool
# define bool2 bvec2
# define bool3 bvec3
# define bool4 bvec4
/* Type name collision with Metal shading language - These typenames are already defined. */
# ifndef GPU_METAL
# define float2 vec2
# define float3 vec3
# define float4 vec4
# define float4x4 mat4
# define int2 ivec2
# define int3 ivec3
# define int4 ivec4
# define uint2 uvec2
# define uint3 uvec3
# define uint4 uvec4
# define bool2 bvec2
# define bool3 bvec3
# define bool4 bvec4
# endif
#else /* C / C++ */
# pragma once