glslang/Test/spv.ext.AnyHitShader.rahit
Daniel Koch ffccefddfd
Updates for final Vulkan ray tracing extensions (#2466)
* Fix traceRay/executeCallable to have id instead of constant.

Update to final (non-provisional) SPIR-V capabilities
(includes review feedback)
- Change visibilty of findLinkerObjects.

See merge request GLSL/glslang!78

* Add support for OpConvertUToAccelerationStructureKHR.

GLSL : https://gitlab.khronos.org/GLSL/GLSL/-/merge_requests/60

SPV : https://gitlab.khronos.org/spirv/spirv-extensions/-/merge_requests/182

See merge request GLSL/glslang!77

* Add volatile qualifier to certain builtins for ray tracing.

See merge request GLSL/glslang!81

* make gl_RayTmaxEXT volatile in intersection shader

Vulkan Issue #2268

* Add testing for layouts on SBT

vulkan/vulkan#2230

- no layout specified should be same as std430
- explicitly test std140, std430, scalar layouts

See merge request GLSL/glslang!86

* Support for new opcodes OpIgnoreIntersectionKHR and OpTerminateRayKHR

vulkan/vulkan#2374

Add support for ignoreIntersectionEXT and terminateRayEXT as block
terminator statements.

See merge request GLSL/glslang!87

* Fix code-generation issues with global ray query variables

See merge request GLSL/glslang!88

* update dependencies for spirv-headers and tools

And update mesh shader results

* Fix indeterminate argument ordering

Authored-by: David Neto <dneto@google.com>

Co-authored-by: Ashwin Lele (NVIDIA Corporation) <alele@nvidia.com>
Co-authored-by: Neslisah <Neslisah.Torosdagli@amd.com>
2020-11-23 13:41:27 -07:00

33 lines
911 B
Plaintext

#version 460
#extension GL_EXT_ray_tracing : enable
#extension GL_KHR_shader_subgroup_basic : enable
layout(location = 1) rayPayloadInEXT vec4 incomingPayload;
void main()
{
uvec3 v0 = gl_LaunchIDEXT;
uvec3 v1 = gl_LaunchSizeEXT;
int v2 = gl_PrimitiveID;
int v3 = gl_InstanceID;
int v4 = gl_InstanceCustomIndexEXT;
vec3 v5 = gl_WorldRayOriginEXT;
vec3 v6 = gl_WorldRayDirectionEXT;
vec3 v7 = gl_ObjectRayOriginEXT;
vec3 v8 = gl_ObjectRayDirectionEXT;
float v9 = gl_RayTminEXT;
float v10 = gl_RayTmaxEXT;
float v11 = gl_HitTEXT;
uint v12 = gl_HitKindEXT;
mat4x3 v13 = gl_ObjectToWorldEXT;
mat4x3 v14 = gl_WorldToObjectEXT;
int v15 = gl_GeometryIndexEXT;
mat3x4 v16 = gl_ObjectToWorld3x4EXT;
mat3x4 v17 = gl_WorldToObject3x4EXT;
incomingPayload = vec4(0.5f);
if (v2 == 1) {
ignoreIntersectionEXT;
v0.x++;
}
incomingPayload.x += float(gl_SubgroupSize);
terminateRayEXT;
}