yum-mirror/glslang

git clone https://git.yummers.dev/yum-mirror/glslang

alelenvUpdate glslang for SPIRV issue 373458ff50a

main
2.2 KiB55 linesraw
1#version 460
2#extension GL_EXT_ray_tracing : enable
3#extension GL_EXT_shader_invocation_reorder : enable
4#extension GL_NV_ray_tracing_motion_blur : enable
5#extension GL_EXT_ray_query : enable
6layout(location = 1) rayPayloadEXT vec4 payload;
7layout(location = 2) rayPayloadEXT pBlock { vec2 val1; vec2 val2; };
8layout(location = 2) hitObjectAttributeEXT vec2 attr;
9layout(location = 3) hitObjectAttributeEXT hBlock { float attrval;};
10layout(binding = 0) uniform accelerationStructureEXT as;
11layout(binding = 1) buffer block {
12	float op;
13};
14void main()
15{
16	hitObjectEXT hObj;
17	hitObjectEXT hObjHit, hObjMiss, hObjNop;
18	rayQueryEXT rq;
19	attr = vec2(1.0);
20	attrval = 2.0;
21	hitObjectTraceRayEXT(hObj, as, 1U, 1U, 1U, 1U, 1U, vec3(0.5), 0.5, vec3(1), 1.0, 1);
22	hitObjectTraceRayMotionEXT(hObj, as, 1U, 1U, 1U, 1U, 1U, vec3(0.5), 0.5, vec3(1), 1.0, 10.0, 2);
23	hitObjectRecordEmptyEXT(hObjNop);
24	hitObjectRecordMissEXT(hObjMiss, 1U, 1U, vec3(0.5), 2.0, vec3(1.5), 5.0);
25	hitObjectRecordMissMotionEXT(hObjMiss,1U, 1U, vec3(0.5), 2.0, vec3(1.5), 5.0, 8.0f);
26	hitObjectExecuteShaderEXT(hObjHit, 1);
27	if (hitObjectIsHitEXT(hObj)) { 
28		op = 1.0f;
29	} else if (hitObjectIsMissEXT(hObj)) {
30		op = 2.0f;
31	} else if (hitObjectIsEmptyEXT(hObj)) {
32		op = 3.0f;
33	}
34	
35	uint rayflags = hitObjectGetRayFlagsEXT(hObjHit);
36	float tmin = hitObjectGetRayTMinEXT(hObjHit);
37	float tmax = hitObjectGetRayTMaxEXT(hObjHit);
38	vec3 orig = hitObjectGetWorldRayOriginEXT(hObjHit);
39	vec3 dir = hitObjectGetWorldRayDirectionEXT(hObjHit);
40	vec3 oorig = hitObjectGetObjectRayOriginEXT(hObjHit);
41	vec3 odir = hitObjectGetObjectRayDirectionEXT(hObjHit);
42	mat4x3 otw = hitObjectGetObjectToWorldEXT(hObjHit);
43	mat4x3 wto = hitObjectGetWorldToObjectEXT(hObjHit);
44	int cid = hitObjectGetInstanceCustomIndexEXT(hObjMiss);
45	int iid = hitObjectGetInstanceIdEXT(hObjNop);
46	int pid = hitObjectGetPrimitiveIndexEXT(hObj);
47	int gid = hitObjectGetGeometryIndexEXT(hObj);
48	uint hkind = hitObjectGetHitKindEXT(hObj);
49	hitObjectGetAttributesEXT(hObj, 2);
50	uvec2 handle = hitObjectGetShaderRecordBufferHandleEXT(hObj);
51	uint rid = hitObjectGetShaderBindingTableRecordIndexEXT(hObj);
52        hitObjectRecordFromQueryEXT(hObjHit, rq, 1U, 2);
53        hitObjectRecordFromQueryEXT(hObjHit, rq, 1U, 2, 0xFEU);
54	
55}