MCPcopy Create free account
hub / github.com/KhronosGroup/Vulkan-ValidationLayers / TEST_F

Function TEST_F

tests/unit/gpu_av_ray_query.cpp:26–76  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

24class NegativeGpuAVRayQuery : public GpuAVRayQueryTest {};
25
26TEST_F(NegativeGpuAVRayQuery, NegativeTmin) {
27 TEST_DESCRIPTION("Ray query with a negative value for Ray TMin");
28 RETURN_IF_SKIP(InitGpuAVRayQuery());
29
30 const char* shader_source = R"glsl(
31 #version 460
32 #extension GL_EXT_ray_query : require
33
34 layout(set = 0, binding = 0) uniform accelerationStructureEXT tlas;
35 layout(set = 0, binding = 1) uniform Uniforms {
36 float t_min;
37 float t_max;
38 } trace_rays_params;
39
40 void main() {
41 rayQueryEXT query;
42 rayQueryInitializeEXT(query, tlas, gl_RayFlagsTerminateOnFirstHitEXT, 0xff, vec3(0),
43 trace_rays_params.t_min, vec3(0,0,1), trace_rays_params.t_max);
44 rayQueryProceedEXT(query);
45 }
46 )glsl";
47
48 CreateComputePipelineHelper pipeline(*this);
49 pipeline.cs_ = VkShaderObj(*m_device, shader_source, VK_SHADER_STAGE_COMPUTE_BIT, SPV_ENV_VULKAN_1_2);
50 pipeline.dsl_bindings_ = {{0, VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR, 1, VK_SHADER_STAGE_COMPUTE_BIT, nullptr},
51 {1, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, 1, VK_SHADER_STAGE_COMPUTE_BIT, nullptr}};
52 pipeline.CreateComputePipeline();
53
54 vkt::as::BuildGeometryInfoKHR tlas = vkt::as::blueprint::BuildOnDeviceTopLevel(*m_device, *m_default_queue, m_command_buffer);
55 pipeline.descriptor_set_.WriteDescriptorAccelStruct(0, 1, &tlas.GetDstAS()->handle());
56
57 vkt::Buffer uniform_buffer(*m_device, 4096, VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT, kHostVisibleMemProps);
58 pipeline.descriptor_set_.WriteDescriptorBufferInfo(1, uniform_buffer, 0, VK_WHOLE_SIZE);
59 pipeline.descriptor_set_.UpdateDescriptorSets();
60
61 auto uniform_buffer_ptr = static_cast<float*>(uniform_buffer.Memory().Map());
62 uniform_buffer_ptr[0] = -2.0f; // t_min
63 uniform_buffer_ptr[1] = 42.0f; // t_max
64
65 m_command_buffer.Begin();
66 vk::CmdBindPipeline(m_command_buffer, VK_PIPELINE_BIND_POINT_COMPUTE, pipeline);
67 vk::CmdBindDescriptorSets(m_command_buffer, VK_PIPELINE_BIND_POINT_COMPUTE, pipeline.pipeline_layout_, 0, 1,
68 &pipeline.descriptor_set_.set_, 0, nullptr);
69 vk::CmdDispatch(m_command_buffer, 1, 1, 1);
70 m_command_buffer.End();
71
72 m_errorMonitor->SetDesiredError("VUID-RuntimeSpirv-OpRayQueryInitializeKHR-06349");
73 m_default_queue->Submit(m_command_buffer);
74 m_device->Wait();
75 m_errorMonitor->VerifyFound();
76}
77
78TEST_F(NegativeGpuAVRayQuery, TMaxLessThenTmin) {
79 TEST_DESCRIPTION("Ray query with a Ray TMax less than Ray TMin");

Callers

nothing calls this directly

Calls 15

VkShaderObjClass · 0.85
BuildOnDeviceTopLevelFunction · 0.85
CmdBindPipelineFunction · 0.85
CmdBindDescriptorSetsFunction · 0.85
CmdDispatchFunction · 0.85
CmdTraceRaysKHRFunction · 0.85
size32Function · 0.85
CmdDrawFunction · 0.85
CreateComputePipelineMethod · 0.80

Tested by

no test coverage detected