From 7365f0b094d959491e99fa29f5ed56d46205fc84 Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Mon, 4 Sep 2023 16:44:27 +0200 Subject: [PATCH] Cleanup: Cover .metal files with `make format` Pull Request: https://projects.blender.org/blender/blender/pulls/111930 --- .../cycles/kernel/device/metal/kernel.metal | 128 ++++++++++-------- tools/utils_maintenance/clang_format_paths.py | 1 + 2 files changed, 69 insertions(+), 60 deletions(-) diff --git a/intern/cycles/kernel/device/metal/kernel.metal b/intern/cycles/kernel/device/metal/kernel.metal index 494f13eb9f9..e03a4ef3b53 100644 --- a/intern/cycles/kernel/device/metal/kernel.metal +++ b/intern/cycles/kernel/device/metal/kernel.metal @@ -69,7 +69,7 @@ TReturn metalrt_local_hit(constant KernelParamsMetal &launch_params_metal, { TReturn result; -#ifdef __BVH_LOCAL__ +# ifdef __BVH_LOCAL__ uint prim = primitive_id + kernel_data_fetch(object_prim_offset, object); if ((object != payload.local_object) || intersection_skip_self_local(payload.self, prim)) { @@ -141,10 +141,10 @@ TReturn metalrt_local_hit(constant KernelParamsMetal &launch_params_metal, result.accept = false; result.continue_search = true; return result; -#endif +# endif } -[[intersection(triangle, triangle_data )]] TriangleIntersectionResult +[[intersection(triangle, triangle_data)]] TriangleIntersectionResult __anyhit__cycles_metalrt_local_hit_tri_prim( constant KernelParamsMetal &launch_params_metal [[buffer(1)]], ray_data MetalKernelContext::MetalRTIntersectionLocalPayload &payload [[payload]], @@ -152,9 +152,10 @@ __anyhit__cycles_metalrt_local_hit_tri_prim( float2 barycentrics [[barycentric_coord]], float ray_tmax [[distance]]) { - //instance_id, aka the user_id has been removed. If we take this function we optimized the - //SSS for starting traversal from a primitive acceleration structure instead of the root of the global AS. - //this means we will always be intersecting the correct object no need for the userid to check + // instance_id, aka the user_id has been removed. If we take this function we optimized the + // SSS for starting traversal from a primitive acceleration structure instead of the root of the + // global AS. this means we will always be intersecting the correct object no need for the userid + // to check return metalrt_local_hit( launch_params_metal, payload, payload.local_object, primitive_id, barycentrics, ray_tmax); } @@ -182,7 +183,7 @@ __anyhit__cycles_metalrt_local_hit_box(const float ray_tmax [[max_distance]]) return result; } -[[intersection(bounding_box, triangle_data )]] BoundingBoxIntersectionResult +[[intersection(bounding_box, triangle_data)]] BoundingBoxIntersectionResult __anyhit__cycles_metalrt_local_hit_box_prim(const float ray_tmax [[max_distance]]) { /* unused function */ @@ -201,26 +202,26 @@ bool metalrt_shadow_all_hit(constant KernelParamsMetal &launch_params_metal, const float2 barycentrics, const float ray_tmax) { -#ifdef __SHADOW_RECORD_ALL__ -# ifdef __VISIBILITY_FLAG__ +# ifdef __SHADOW_RECORD_ALL__ +# ifdef __VISIBILITY_FLAG__ const uint visibility = payload.visibility; if ((kernel_data_fetch(objects, object).visibility & visibility) == 0) { /* continue search */ return true; } -# endif +# endif const float u = barycentrics.x; const float v = barycentrics.y; const int prim_type = kernel_data_fetch(objects, object).primitive_type; int type = prim_type; -# ifdef __HAIR__ +# ifdef __HAIR__ if (intersection_type != METALRT_HIT_TRIANGLE) { - if ( (prim_type == PRIMITIVE_CURVE_THICK || prim_type == PRIMITIVE_CURVE_RIBBON)) { + if ((prim_type == PRIMITIVE_CURVE_THICK || prim_type == PRIMITIVE_CURVE_RIBBON)) { const KernelCurveSegment segment = kernel_data_fetch(curve_segments, prim); type = segment.type; prim = segment.prim; - + /* Filter out curve endcaps */ if (u == 0.0f || u == 1.0f) { /* continue search */ @@ -228,19 +229,19 @@ bool metalrt_shadow_all_hit(constant KernelParamsMetal &launch_params_metal, } } } -# endif +# endif if (intersection_skip_self_shadow(payload.self, object, prim)) { /* continue search */ return true; } -# ifndef __TRANSPARENT_SHADOWS__ +# ifndef __TRANSPARENT_SHADOWS__ /* No transparent shadows support compiled in, make opaque. */ payload.result = true; /* terminate ray */ return false; -# else +# else short max_hits = payload.max_hits; short num_hits = payload.num_hits; short num_recorded_hits = payload.num_recorded_hits; @@ -249,7 +250,8 @@ bool metalrt_shadow_all_hit(constant KernelParamsMetal &launch_params_metal, /* If no transparent shadows, all light is blocked and we can stop immediately. */ if (num_hits >= max_hits || - !(context.intersection_get_shader_flags(NULL, prim, type) & SD_HAS_TRANSPARENT_SHADOW)) { + !(context.intersection_get_shader_flags(NULL, prim, type) & SD_HAS_TRANSPARENT_SHADOW)) + { payload.result = true; /* terminate ray */ return false; @@ -308,10 +310,10 @@ bool metalrt_shadow_all_hit(constant KernelParamsMetal &launch_params_metal, INTEGRATOR_STATE_ARRAY_WRITE(state, shadow_isect, record_index, prim) = prim; INTEGRATOR_STATE_ARRAY_WRITE(state, shadow_isect, record_index, object) = object; INTEGRATOR_STATE_ARRAY_WRITE(state, shadow_isect, record_index, type) = type; - + /* Continue tracing. */ -# endif /* __TRANSPARENT_SHADOWS__ */ -#endif /* __SHADOW_RECORD_ALL__ */ +# endif /* __TRANSPARENT_SHADOWS__ */ +# endif /* __SHADOW_RECORD_ALL__ */ return true; } @@ -355,9 +357,11 @@ inline TReturnType metalrt_visibility_test( { TReturnType result; -#ifdef __HAIR__ +# ifdef __HAIR__ const int type = kernel_data_fetch(objects, object).primitive_type; - if (intersection_type == METALRT_HIT_BOUNDING_BOX && (type == PRIMITIVE_CURVE_THICK || type == PRIMITIVE_CURVE_RIBBON)) { + if (intersection_type == METALRT_HIT_BOUNDING_BOX && + (type == PRIMITIVE_CURVE_THICK || type == PRIMITIVE_CURVE_RIBBON)) + { /* Filter out curve endcaps. */ if (u == 0.0f || u == 1.0f) { result.accept = false; @@ -365,16 +369,16 @@ inline TReturnType metalrt_visibility_test( return result; } } -#endif +# endif uint visibility = payload.visibility; -#ifdef __VISIBILITY_FLAG__ +# ifdef __VISIBILITY_FLAG__ if ((kernel_data_fetch(objects, object).visibility & visibility) == 0) { result.accept = false; result.continue_search = true; return result; } -#endif +# endif if (intersection_type == METALRT_HIT_TRIANGLE) { } @@ -441,7 +445,7 @@ __anyhit__cycles_metalrt_visibility_test_box(const float ray_tmax [[max_distance /* Primitive intersection functions. */ -#ifdef __HAIR__ +# ifdef __HAIR__ ccl_device_inline void metalrt_intersection_curve( constant KernelParamsMetal &launch_params_metal, ray_data MetalKernelContext::MetalRTIntersectionPayload &payload, @@ -455,19 +459,20 @@ ccl_device_inline void metalrt_intersection_curve( const float ray_tmax, thread BoundingBoxIntersectionResult &result) { -# ifdef __VISIBILITY_FLAG__ +# ifdef __VISIBILITY_FLAG__ const uint visibility = payload.visibility; if ((kernel_data_fetch(objects, object).visibility & visibility) == 0) { return; } -# endif +# endif Intersection isect; isect.t = ray_tmax; MetalKernelContext context(launch_params_metal); if (context.curve_intersect( - NULL, &isect, ray_P, ray_D, ray_tmin, isect.t, object, prim, time, type)) { + NULL, &isect, ray_P, ray_D, ray_tmin, isect.t, object, prim, time, type)) + { result = metalrt_visibility_test( launch_params_metal, payload, object, prim, isect.u); if (result.accept) { @@ -493,19 +498,20 @@ ccl_device_inline void metalrt_intersection_curve_shadow( const float ray_tmax, thread BoundingBoxIntersectionResult &result) { -# ifdef __VISIBILITY_FLAG__ +# ifdef __VISIBILITY_FLAG__ const uint visibility = payload.visibility; if ((kernel_data_fetch(objects, object).visibility & visibility) == 0) { return; } -# endif +# endif Intersection isect; isect.t = ray_tmax; MetalKernelContext context(launch_params_metal); if (context.curve_intersect( - NULL, &isect, ray_P, ray_D, ray_tmin, isect.t, object, prim, time, type)) { + NULL, &isect, ray_P, ray_D, ray_tmin, isect.t, object, prim, time, type)) + { result.continue_search = metalrt_shadow_all_hit( launch_params_metal, payload, object, prim, float2(isect.u, isect.v), ray_tmax); result.accept = !result.continue_search; @@ -539,11 +545,11 @@ __intersection__curve_ribbon(constant KernelParamsMetal &launch_params_metal [[b segment.type, ray_P, ray_D, -# if defined(__METALRT_MOTION__) +# if defined(__METALRT_MOTION__) payload.time, -# else +# else 0.0f, -# endif +# endif ray_tmin, ray_tmax, result); @@ -579,11 +585,11 @@ __intersection__curve_ribbon_shadow( segment.type, ray_P, ray_D, -# if defined(__METALRT_MOTION__) +# if defined(__METALRT_MOTION__) payload.time, -# else +# else 0.0f, -# endif +# endif ray_tmin, ray_tmax, result); @@ -617,11 +623,11 @@ __intersection__curve_all(constant KernelParamsMetal &launch_params_metal [[buff segment.type, ray_P, ray_D, -# if defined(__METALRT_MOTION__) +# if defined(__METALRT_MOTION__) payload.time, -# else +# else 0.0f, -# endif +# endif ray_tmin, ray_tmax, result); @@ -655,20 +661,20 @@ __intersection__curve_all_shadow( segment.type, ray_P, ray_D, -# if defined(__METALRT_MOTION__) +# if defined(__METALRT_MOTION__) payload.time, -# else +# else 0.0f, -# endif +# endif ray_tmin, ray_tmax, result); return result; } -#endif /* __HAIR__ */ +# endif /* __HAIR__ */ -#ifdef __POINTCLOUD__ +# ifdef __POINTCLOUD__ ccl_device_inline void metalrt_intersection_point( constant KernelParamsMetal &launch_params_metal, ray_data MetalKernelContext::MetalRTIntersectionPayload &payload, @@ -682,19 +688,20 @@ ccl_device_inline void metalrt_intersection_point( const float ray_tmax, thread BoundingBoxIntersectionResult &result) { -# ifdef __VISIBILITY_FLAG__ +# ifdef __VISIBILITY_FLAG__ const uint visibility = payload.visibility; if ((kernel_data_fetch(objects, object).visibility & visibility) == 0) { return; } -# endif +# endif Intersection isect; isect.t = ray_tmax; MetalKernelContext context(launch_params_metal); if (context.point_intersect( - NULL, &isect, ray_P, ray_D, ray_tmin, isect.t, object, prim, time, type)) { + NULL, &isect, ray_P, ray_D, ray_tmin, isect.t, object, prim, time, type)) + { result = metalrt_visibility_test( launch_params_metal, payload, object, prim, isect.u); if (result.accept) { @@ -720,19 +727,20 @@ ccl_device_inline void metalrt_intersection_point_shadow( const float ray_tmax, thread BoundingBoxIntersectionResult &result) { -# ifdef __VISIBILITY_FLAG__ +# ifdef __VISIBILITY_FLAG__ const uint visibility = payload.visibility; if ((kernel_data_fetch(objects, object).visibility & visibility) == 0) { return; } -# endif +# endif Intersection isect; isect.t = ray_tmax; MetalKernelContext context(launch_params_metal); if (context.point_intersect( - NULL, &isect, ray_P, ray_D, ray_tmin, isect.t, object, prim, time, type)) { + NULL, &isect, ray_P, ray_D, ray_tmin, isect.t, object, prim, time, type)) + { result.continue_search = metalrt_shadow_all_hit( launch_params_metal, payload, object, prim, float2(isect.u, isect.v), ray_tmax); result.accept = !result.continue_search; @@ -768,11 +776,11 @@ __intersection__point(constant KernelParamsMetal &launch_params_metal [[buffer(1 type, ray_origin, ray_direction, -# if defined(__METALRT_MOTION__) +# if defined(__METALRT_MOTION__) payload.time, -# else +# else 0.0f, -# endif +# endif ray_tmin, ray_tmax, result); @@ -806,16 +814,16 @@ __intersection__point_shadow(constant KernelParamsMetal &launch_params_metal [[b type, ray_origin, ray_direction, -# if defined(__METALRT_MOTION__) +# if defined(__METALRT_MOTION__) payload.time, -# else +# else 0.0f, -# endif +# endif ray_tmin, ray_tmax, result); return result; } -#endif /* __POINTCLOUD__ */ -#endif /* __METALRT__ */ +# endif /* __POINTCLOUD__ */ +#endif /* __METALRT__ */ diff --git a/tools/utils_maintenance/clang_format_paths.py b/tools/utils_maintenance/clang_format_paths.py index 93d541c5262..45300c91c40 100755 --- a/tools/utils_maintenance/clang_format_paths.py +++ b/tools/utils_maintenance/clang_format_paths.py @@ -38,6 +38,7 @@ extensions = ( ".h", ".hh", ".hpp", ".hxx", ".m", ".mm", ".osl", ".glsl", ".msl", + ".metal", ) extensions_only_retab = (