Merge pull request #3038 from ewerness-nv/extmicromapongithubmaster
GL_EXT_opacity_micromap
This commit is contained in:
commit
89db4e1caa
@ -10,6 +10,7 @@ spv.ext.RayGenShader.rgen
|
|||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint RayGenerationKHR 4 "main" 11 21 29 40 53 54 57
|
EntryPoint RayGenerationKHR 4 "main" 11 21 29 40 53 54 57
|
||||||
Source GLSL 460
|
Source GLSL 460
|
||||||
|
SourceExtension "GL_EXT_opacity_micromap"
|
||||||
SourceExtension "GL_EXT_ray_flags_primitive_culling"
|
SourceExtension "GL_EXT_ray_flags_primitive_culling"
|
||||||
SourceExtension "GL_EXT_ray_tracing"
|
SourceExtension "GL_EXT_ray_tracing"
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
@ -52,7 +53,7 @@ spv.ext.RayGenShader.rgen
|
|||||||
27: TypeAccelerationStructureKHR
|
27: TypeAccelerationStructureKHR
|
||||||
28: TypePointer UniformConstant 27
|
28: TypePointer UniformConstant 27
|
||||||
29(accEXT0): 28(ptr) Variable UniformConstant
|
29(accEXT0): 28(ptr) Variable UniformConstant
|
||||||
35: 6(int) Constant 768
|
35: 6(int) Constant 1792
|
||||||
36: TypeFloat 32
|
36: TypeFloat 32
|
||||||
37: TypeVector 36(float) 3
|
37: TypeVector 36(float) 3
|
||||||
38(block): TypeStruct 37(fvec3) 37(fvec3)
|
38(block): TypeStruct 37(fvec3) 37(fvec3)
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
#version 460
|
#version 460
|
||||||
#extension GL_EXT_ray_tracing : enable
|
#extension GL_EXT_ray_tracing : enable
|
||||||
#extension GL_EXT_ray_flags_primitive_culling : enable
|
#extension GL_EXT_ray_flags_primitive_culling : enable
|
||||||
|
#extension GL_EXT_opacity_micromap : enable
|
||||||
layout(binding = 0) uniform accelerationStructureEXT accEXT0;
|
layout(binding = 0) uniform accelerationStructureEXT accEXT0;
|
||||||
layout(binding = 1, set = 0) uniform accelerationStructureEXT accEXT1; // Unused
|
layout(binding = 1, set = 0) uniform accelerationStructureEXT accEXT1; // Unused
|
||||||
layout(binding = 2, r32ui) shadercallcoherent uniform uimage2D imageu;
|
layout(binding = 2, r32ui) shadercallcoherent uniform uimage2D imageu;
|
||||||
@ -18,5 +19,5 @@ void main()
|
|||||||
uint ly = gl_LaunchIDEXT.y;
|
uint ly = gl_LaunchIDEXT.y;
|
||||||
uint sx = gl_LaunchSizeEXT.x;
|
uint sx = gl_LaunchSizeEXT.x;
|
||||||
uint sy = gl_LaunchSizeEXT.y;
|
uint sy = gl_LaunchSizeEXT.y;
|
||||||
traceRayEXT(accEXT0, lx, ly, sx, sy, gl_RayFlagsSkipTrianglesEXT | gl_RayFlagsSkipAABBEXT, origin, 0.5f, dir, 0.75f, 1);
|
traceRayEXT(accEXT0, lx, ly, sx, sy, gl_RayFlagsSkipTrianglesEXT | gl_RayFlagsSkipAABBEXT | gl_RayFlagsForceOpacityMicromap2StateEXT, origin, 0.5f, dir, 0.75f, 1);
|
||||||
}
|
}
|
||||||
|
@ -5850,6 +5850,7 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
|
|||||||
"const uint gl_RayFlagsCullNoOpaqueEXT = 128U;"
|
"const uint gl_RayFlagsCullNoOpaqueEXT = 128U;"
|
||||||
"const uint gl_RayFlagsSkipTrianglesEXT = 256U;"
|
"const uint gl_RayFlagsSkipTrianglesEXT = 256U;"
|
||||||
"const uint gl_RayFlagsSkipAABBEXT = 512U;"
|
"const uint gl_RayFlagsSkipAABBEXT = 512U;"
|
||||||
|
"const uint gl_RayFlagsForceOpacityMicromap2StateEXT = 1024U;"
|
||||||
"const uint gl_HitKindFrontFacingTriangleEXT = 254U;"
|
"const uint gl_HitKindFrontFacingTriangleEXT = 254U;"
|
||||||
"const uint gl_HitKindBackFacingTriangleEXT = 255U;"
|
"const uint gl_HitKindBackFacingTriangleEXT = 255U;"
|
||||||
"\n";
|
"\n";
|
||||||
@ -8167,6 +8168,7 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion
|
|||||||
symbolTable.setFunctionExtensions("rayQueryGetWorldRayDirectionEXT", 1, &E_GL_EXT_ray_query);
|
symbolTable.setFunctionExtensions("rayQueryGetWorldRayDirectionEXT", 1, &E_GL_EXT_ray_query);
|
||||||
symbolTable.setVariableExtensions("gl_RayFlagsSkipAABBEXT", 1, &E_GL_EXT_ray_flags_primitive_culling);
|
symbolTable.setVariableExtensions("gl_RayFlagsSkipAABBEXT", 1, &E_GL_EXT_ray_flags_primitive_culling);
|
||||||
symbolTable.setVariableExtensions("gl_RayFlagsSkipTrianglesEXT", 1, &E_GL_EXT_ray_flags_primitive_culling);
|
symbolTable.setVariableExtensions("gl_RayFlagsSkipTrianglesEXT", 1, &E_GL_EXT_ray_flags_primitive_culling);
|
||||||
|
symbolTable.setVariableExtensions("gl_RayFlagsForceOpacityMicromap2StateEXT", 1, &E_GL_EXT_opacity_micromap);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((profile != EEsProfile && version >= 130) ||
|
if ((profile != EEsProfile && version >= 130) ||
|
||||||
|
@ -342,11 +342,12 @@ void TParseVersions::initializeExtensionBehavior()
|
|||||||
extensionBehavior[E_GL_EXT_blend_func_extended] = EBhDisable;
|
extensionBehavior[E_GL_EXT_blend_func_extended] = EBhDisable;
|
||||||
extensionBehavior[E_GL_EXT_shader_implicit_conversions] = EBhDisable;
|
extensionBehavior[E_GL_EXT_shader_implicit_conversions] = EBhDisable;
|
||||||
extensionBehavior[E_GL_EXT_fragment_shading_rate] = EBhDisable;
|
extensionBehavior[E_GL_EXT_fragment_shading_rate] = EBhDisable;
|
||||||
extensionBehavior[E_GL_EXT_shader_image_int64] = EBhDisable;
|
extensionBehavior[E_GL_EXT_shader_image_int64] = EBhDisable;
|
||||||
extensionBehavior[E_GL_EXT_terminate_invocation] = EBhDisable;
|
extensionBehavior[E_GL_EXT_terminate_invocation] = EBhDisable;
|
||||||
extensionBehavior[E_GL_EXT_shared_memory_block] = EBhDisable;
|
extensionBehavior[E_GL_EXT_shared_memory_block] = EBhDisable;
|
||||||
extensionBehavior[E_GL_EXT_spirv_intrinsics] = EBhDisable;
|
extensionBehavior[E_GL_EXT_spirv_intrinsics] = EBhDisable;
|
||||||
extensionBehavior[E_GL_EXT_mesh_shader] = EBhDisable;
|
extensionBehavior[E_GL_EXT_mesh_shader] = EBhDisable;
|
||||||
|
extensionBehavior[E_GL_EXT_opacity_micromap] = EBhDisable;
|
||||||
|
|
||||||
// OVR extensions
|
// OVR extensions
|
||||||
extensionBehavior[E_GL_OVR_multiview] = EBhDisable;
|
extensionBehavior[E_GL_OVR_multiview] = EBhDisable;
|
||||||
|
@ -212,6 +212,7 @@ const char* const E_GL_EXT_subgroup_uniform_control_flow = "GL_EXT_subgroup_u
|
|||||||
const char* const E_GL_EXT_spirv_intrinsics = "GL_EXT_spirv_intrinsics";
|
const char* const E_GL_EXT_spirv_intrinsics = "GL_EXT_spirv_intrinsics";
|
||||||
const char* const E_GL_EXT_fragment_shader_barycentric = "GL_EXT_fragment_shader_barycentric";
|
const char* const E_GL_EXT_fragment_shader_barycentric = "GL_EXT_fragment_shader_barycentric";
|
||||||
const char* const E_GL_EXT_mesh_shader = "GL_EXT_mesh_shader";
|
const char* const E_GL_EXT_mesh_shader = "GL_EXT_mesh_shader";
|
||||||
|
const char* const E_GL_EXT_opacity_micromap = "GL_EXT_opacity_micromap";
|
||||||
|
|
||||||
// Arrays of extensions for the above viewportEXTs duplications
|
// Arrays of extensions for the above viewportEXTs duplications
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user