diff options
Diffstat (limited to '3rdparty/bgfx/3rdparty/spirv-cross/reference/shaders-msl/tesc/water_tess.tesc')
-rw-r--r-- | 3rdparty/bgfx/3rdparty/spirv-cross/reference/shaders-msl/tesc/water_tess.tesc | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/3rdparty/bgfx/3rdparty/spirv-cross/reference/shaders-msl/tesc/water_tess.tesc b/3rdparty/bgfx/3rdparty/spirv-cross/reference/shaders-msl/tesc/water_tess.tesc index 596abe13091..d74f5752f8b 100644 --- a/3rdparty/bgfx/3rdparty/spirv-cross/reference/shaders-msl/tesc/water_tess.tesc +++ b/3rdparty/bgfx/3rdparty/spirv-cross/reference/shaders-msl/tesc/water_tess.tesc @@ -26,7 +26,8 @@ struct main0_in float2 vPatchPosBase [[attribute(0)]]; }; -inline bool frustum_cull(thread const float2& p0, constant UBO& v_41) +static inline __attribute__((always_inline)) +bool frustum_cull(thread const float2& p0, constant UBO& v_41) { float2 min_xz = (p0 - float2(10.0)) * v_41.uScale.xy; float2 max_xz = ((p0 + v_41.uPatchSize) + float2(10.0)) * v_41.uScale.xy; @@ -49,7 +50,8 @@ inline bool frustum_cull(thread const float2& p0, constant UBO& v_41) return !_215; } -inline float lod_factor(thread const float2& pos_, constant UBO& v_41) +static inline __attribute__((always_inline)) +float lod_factor(thread const float2& pos_, constant UBO& v_41) { float2 pos = pos_ * v_41.uScale.xy; float3 dist_to_cam = v_41.uCamPos - float3(pos.x, 0.0, pos.y); @@ -57,17 +59,20 @@ inline float lod_factor(thread const float2& pos_, constant UBO& v_41) return fast::clamp(level, 0.0, v_41.uMaxTessLevel.x); } -inline float4 tess_level(thread const float4& lod, constant UBO& v_41) +static inline __attribute__((always_inline)) +float4 tess_level(thread const float4& lod, constant UBO& v_41) { return exp2(-lod) * v_41.uMaxTessLevel.y; } -inline float tess_level(thread const float& lod, constant UBO& v_41) +static inline __attribute__((always_inline)) +float tess_level(thread const float& lod, constant UBO& v_41) { return v_41.uMaxTessLevel.y * exp2(-lod); } -inline void compute_tess_levels(thread const float2& p0, constant UBO& v_41, device float2& vOutPatchPosBase, device float4& vPatchLods, device half (&gl_TessLevelOuter)[4], device half (&gl_TessLevelInner)[2]) +static inline __attribute__((always_inline)) +void compute_tess_levels(thread const float2& p0, constant UBO& v_41, device float2& vOutPatchPosBase, device float4& vPatchLods, device half (&gl_TessLevelOuter)[4], device half (&gl_TessLevelInner)[2]) { vOutPatchPosBase = p0; float2 param = p0 + (float2(-0.5) * v_41.uPatchSize); |