Merge pull request #2159 from neslimsah/master

GL_EXT_ray_query accelerationStructureEXT
This commit is contained in:
John Kessenich 2020-03-27 08:23:46 -06:00 committed by GitHub
commit 4d7c749b76
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 17 additions and 16 deletions

View File

@ -18,13 +18,13 @@ rayQuery.rgen
Name 12 "tMin"
Name 14 "tMax"
Name 18 "localRayQuery"
Name 21 "accNV0"
Name 21 "acc0"
Name 26 "block"
MemberName 26(block) 0 "dir"
MemberName 26(block) 1 "origin"
Name 28 ""
Decorate 21(accNV0) DescriptorSet 0
Decorate 21(accNV0) Binding 0
Decorate 21(acc0) DescriptorSet 0
Decorate 21(acc0) Binding 0
MemberDecorate 26(block) 0 Offset 0
MemberDecorate 26(block) 1 Offset 16
Decorate 26(block) BufferBlock
@ -41,7 +41,7 @@ rayQuery.rgen
17: TypePointer Function 16
19: TypeAccelerationStructureKHR
20: TypePointer UniformConstant 19
21(accNV0): 20(ptr) Variable UniformConstant
21(acc0): 20(ptr) Variable UniformConstant
24: 6(int) Constant 255
25: TypeVector 10(float) 3
26(block): TypeStruct 25(fvec3) 25(fvec3)
@ -61,7 +61,7 @@ rayQuery.rgen
Store 8(rayFlags) 9
Store 12(tMin) 13
Store 14(tMax) 15
22: 19 Load 21(accNV0)
22: 19 Load 21(acc0)
23: 6(int) Load 8(rayFlags)
32: 31(ptr) AccessChain 28 30
33: 25(fvec3) Load 32

View File

@ -16,7 +16,7 @@ layout(std430, set = 0, binding = 0) buffer Log
uint y;
};
layout(binding = 1, set = 0) uniform accelerationStructureNV rtas;
layout(binding = 1, set = 0) uniform accelerationStructureEXT rtas;
layout(std430, set = 0, binding = 2) buffer Rays { Ray rays[]; };
void doSomething()

View File

@ -16,7 +16,7 @@ layout(std430, set = 0, binding = 0) buffer Log
uint y;
};
layout(binding = 1, set = 0) uniform accelerationStructureNV rtas;
layout(binding = 1, set = 0) uniform accelerationStructureEXT rtas;
layout(std430, set = 0, binding = 2) buffer Rays { Ray rays[]; };
void doSomething()

View File

@ -16,7 +16,7 @@ layout(std430, set = 0, binding = 0) buffer Log
uint y;
};
layout(binding = 1, set = 0) uniform accelerationStructureNV rtas;
layout(binding = 1, set = 0) uniform accelerationStructureEXT rtas;
layout(std430, set = 0, binding = 2) buffer Rays { Ray rays[]; };
void doSomething()

View File

@ -16,7 +16,7 @@ layout(std430, set = 0, binding = 0) buffer Log
uint y;
};
layout(binding = 1, set = 0) uniform accelerationStructureNV rtas;
layout(binding = 1, set = 0) uniform accelerationStructureEXT rtas;
layout(std430, set = 0, binding = 2) buffer Rays { Ray rays[]; };
void doSomething()

View File

@ -16,7 +16,7 @@ layout(std430, set = 0, binding = 0) buffer Log
uint y;
};
layout(binding = 1, set = 0) uniform accelerationStructureNV rtas;
layout(binding = 1, set = 0) uniform accelerationStructureEXT rtas;
layout(std430, set = 0, binding = 2) buffer Rays { Ray rays[]; };
void doSomething()

View File

@ -10,7 +10,7 @@ struct Ray
float tmax;
};
layout(binding = 0, set = 0) uniform accelerationStructureNV rtas;
layout(binding = 0, set = 0) uniform accelerationStructureEXT rtas;
layout(std430, set = 0, binding = 2) buffer Rays { Ray rays[]; };
layout(shaderRecordNV) buffer block
{

View File

@ -10,7 +10,7 @@ struct Ray
float tmax;
};
layout(binding = 0, set = 0) uniform accelerationStructureNV rtas;
layout(binding = 0, set = 0) uniform accelerationStructureEXT rtas;
layout(std430, set = 0, binding = 2) buffer Rays { Ray rays[]; };
uint launchIndex()

View File

@ -10,7 +10,7 @@ struct Ray
float tmax;
};
layout(binding = 0, set = 0) uniform accelerationStructureNV rtas;
layout(binding = 0, set = 0) uniform accelerationStructureEXT rtas;
layout(std430, set = 0, binding = 2) buffer Rays { Ray rays[]; };
uint launchIndex()

View File

@ -1,7 +1,7 @@
#version 460
#extension GL_NV_ray_tracing : enable
#extension GL_EXT_ray_query : enable
layout(binding = 0, set = 0) uniform accelerationStructureNV accNV0;
layout(binding = 0, set = 0) uniform accelerationStructureEXT acc0;
layout(shaderRecordNV) buffer block
{
@ -15,7 +15,7 @@ void main()
uint rayFlags = gl_RayFlagsOpaqueEXT | gl_RayFlagsSkipClosestHitShaderEXT;
float tMin = 0.f;
float tMax = 1000.f;
rayQueryInitializeEXT(localRayQuery, accNV0, rayFlags, 0xFF , origin, tMin, dir, tMax);
rayQueryInitializeEXT(localRayQuery, acc0, rayFlags, 0xFF , origin, tMin, dir, tMax);
if (!rayQueryProceedEXT(localRayQuery))
{
rayQueryTerminateEXT(localRayQuery);

View File

@ -1030,7 +1030,8 @@ int TScanContext::tokenizeIdentifier()
case CALLDATAINEXT:
case ACCSTRUCTEXT:
if (parseContext.symbolTable.atBuiltInLevel() ||
parseContext.extensionTurnedOn(E_GL_EXT_ray_tracing))
parseContext.extensionTurnedOn(E_GL_EXT_ray_tracing) ||
parseContext.extensionTurnedOn(E_GL_EXT_ray_query))
return keyword;
return identifierOrType();
case RAYQUERYEXT: