Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/KhronosGroup/SPIRV-Cross.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans-Kristian Arntzen <post@arntzen-software.no>2022-03-24 21:27:22 +0300
committerGitHub <noreply@github.com>2022-03-24 21:27:22 +0300
commit0d4ce028bf8b8a94d325dc1e1c20446153ba19c4 (patch)
tree797c5e9ac4324cdfd68dfac1c14bed7e99ba9776
parenta3996eccf30322516432c5dedb9299cf30ba8cf7 (diff)
parent17c52990d54dfcc7ee21590dc59207c233562787 (diff)
Merge pull request #1903 from KhronosGroup/fix-1900sdk-1.3.211.0sdk-1.3.211
MSL: Fix goofy bugs in ray query.
-rw-r--r--reference/opt/shaders-msl/comp/ray-query.spv14.vk.ios.msl24.comp10
-rw-r--r--reference/shaders-msl/comp/ray-query.spv14.vk.ios.msl24.comp10
-rw-r--r--spirv_msl.cpp10
3 files changed, 15 insertions, 15 deletions
diff --git a/reference/opt/shaders-msl/comp/ray-query.spv14.vk.ios.msl24.comp b/reference/opt/shaders-msl/comp/ray-query.spv14.vk.ios.msl24.comp
index 0a94deb5..35539b2c 100644
--- a/reference/opt/shaders-msl/comp/ray-query.spv14.vk.ios.msl24.comp
+++ b/reference/opt/shaders-msl/comp/ray-query.spv14.vk.ios.msl24.comp
@@ -19,19 +19,19 @@ struct Params
float thit;
};
-kernel void main0(constant Params& _18 [[buffer(1)]], acceleration_structure<instancing> AS0 [[buffer(0)]], acceleration_structure<instancing> AS1 [[buffer(2)]])
+kernel void main0(constant Params& _18 [[buffer(1)]], raytracing::acceleration_structure<raytracing::instancing> AS0 [[buffer(0)]], raytracing::acceleration_structure<raytracing::instancing> AS1 [[buffer(2)]])
{
- intersection_query<instancing, triangle_data> q;
+ raytracing::intersection_query<raytracing::instancing, raytracing::triangle_data> q;
q.reset(ray(_18.origin, _18.dir, _18.tmin, _18.tmax), AS0, intersection_params());
- intersection_query<instancing, triangle_data> q2[2];
+ raytracing::intersection_query<raytracing::instancing, raytracing::triangle_data> q2[2];
q2[1].reset(ray(_18.origin, _18.dir, _18.tmin, _18.tmax), AS1, intersection_params());
bool _63 = q.next();
q2[0].abort();
q.commit_bounding_box_intersection(_18.thit);
q2[1].commit_triangle_intersection();
float _71 = q.get_ray_min_distance();
- float3 _74 = q.get_world_space_ray_origin();
- float3 _75 = q.get_world_space_ray_direction();
+ float3 _74 = q.get_world_space_ray_direction();
+ float3 _75 = q.get_world_space_ray_origin();
uint _80 = uint(q2[1].get_committed_intersection_type());
uint _83 = uint(q2[0].get_candidate_intersection_type()) - 1;
bool _85 = q2[1].is_candidate_non_opaque_bounding_box();
diff --git a/reference/shaders-msl/comp/ray-query.spv14.vk.ios.msl24.comp b/reference/shaders-msl/comp/ray-query.spv14.vk.ios.msl24.comp
index 64c993d4..dde7f47b 100644
--- a/reference/shaders-msl/comp/ray-query.spv14.vk.ios.msl24.comp
+++ b/reference/shaders-msl/comp/ray-query.spv14.vk.ios.msl24.comp
@@ -19,11 +19,11 @@ struct Params
float thit;
};
-kernel void main0(constant Params& _18 [[buffer(1)]], acceleration_structure<instancing> AS0 [[buffer(0)]], acceleration_structure<instancing> AS1 [[buffer(2)]])
+kernel void main0(constant Params& _18 [[buffer(1)]], raytracing::acceleration_structure<raytracing::instancing> AS0 [[buffer(0)]], raytracing::acceleration_structure<raytracing::instancing> AS1 [[buffer(2)]])
{
- intersection_query<instancing, triangle_data> q;
+ raytracing::intersection_query<raytracing::instancing, raytracing::triangle_data> q;
q.reset(ray(_18.origin, _18.dir, _18.tmin, _18.tmax), AS0, intersection_params());
- intersection_query<instancing, triangle_data> q2[2];
+ raytracing::intersection_query<raytracing::instancing, raytracing::triangle_data> q2[2];
q2[1].reset(ray(_18.origin, _18.dir, _18.tmin, _18.tmax), AS1, intersection_params());
bool _63 = q.next();
bool res = _63;
@@ -32,9 +32,9 @@ kernel void main0(constant Params& _18 [[buffer(1)]], acceleration_structure<ins
q2[1].commit_triangle_intersection();
float _71 = q.get_ray_min_distance();
float fval = _71;
- float3 _74 = q.get_world_space_ray_origin();
+ float3 _74 = q.get_world_space_ray_direction();
float3 fvals = _74;
- float3 _75 = q.get_world_space_ray_direction();
+ float3 _75 = q.get_world_space_ray_origin();
fvals = _75;
uint _80 = uint(q2[1].get_committed_intersection_type());
uint type = _80;
diff --git a/spirv_msl.cpp b/spirv_msl.cpp
index c7ea9340..04555f43 100644
--- a/spirv_msl.cpp
+++ b/spirv_msl.cpp
@@ -8532,8 +8532,8 @@ void CompilerMSL::emit_instruction(const Instruction &instruction)
#define MSL_RAY_QUERY_IS_OP2(op, msl_op) MSL_RAY_QUERY_OP_INNER2(op, .is, msl_op)
MSL_RAY_QUERY_GET_OP(RayTMin, ray_min_distance);
- MSL_RAY_QUERY_GET_OP(WorldRayOrigin, world_space_ray_direction);
- MSL_RAY_QUERY_GET_OP(WorldRayDirection, world_space_ray_origin);
+ MSL_RAY_QUERY_GET_OP(WorldRayOrigin, world_space_ray_origin);
+ MSL_RAY_QUERY_GET_OP(WorldRayDirection, world_space_ray_direction);
MSL_RAY_QUERY_GET_OP2(IntersectionInstanceId, instance_id);
MSL_RAY_QUERY_GET_OP2(IntersectionInstanceCustomIndex, user_instance_id);
MSL_RAY_QUERY_GET_OP2(IntersectionBarycentrics, triangle_barycentric_coord);
@@ -13603,14 +13603,14 @@ string CompilerMSL::type_to_glsl(const SPIRType &type, uint32_t id)
break;
case SPIRType::AccelerationStructure:
if (msl_options.supports_msl_version(2, 4))
- type_name = "acceleration_structure<instancing>";
+ type_name = "raytracing::acceleration_structure<raytracing::instancing>";
else if (msl_options.supports_msl_version(2, 3))
- type_name = "instance_acceleration_structure";
+ type_name = "raytracing::instance_acceleration_structure";
else
SPIRV_CROSS_THROW("Acceleration Structure Type is supported in MSL 2.3 and above.");
break;
case SPIRType::RayQuery:
- return "intersection_query<instancing, triangle_data>";
+ return "raytracing::intersection_query<raytracing::instancing, raytracing::triangle_data>";
default:
return "unknown_type";