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

Function TEST_F

tests/unit/gpu_av_mesh.cpp:21–71  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

19class NegativeGpuAVMesh : public GpuAVMesh {};
20
21TEST_F(NegativeGpuAVMesh, PrimitiveCount) {
22 RETURN_IF_SKIP(InitBasicMeshAndTask());
23 InitRenderTarget();
24
25 const char* mesh_source = R"glsl(
26 #version 450
27 #extension GL_EXT_mesh_shader : require
28 layout(triangles, max_vertices = 3, max_primitives = 1) out;
29 layout(set = 0, binding = 0) buffer SSBO {
30 uint v;
31 uint p;
32 };
33 void main() {
34 SetMeshOutputsEXT(v, p);
35 gl_MeshVerticesEXT[0].gl_Position = vec4(0);
36 gl_PrimitiveTriangleIndicesEXT[0] = uvec3(0, 1, 2);
37 }
38 )glsl";
39
40 VkShaderObj ms(*m_device, mesh_source, VK_SHADER_STAGE_MESH_BIT_EXT, SPV_ENV_VULKAN_1_2);
41 VkShaderObj fs(*m_device, kFragmentMinimalGlsl, VK_SHADER_STAGE_FRAGMENT_BIT, SPV_ENV_VULKAN_1_2);
42
43 OneOffDescriptorSet descriptor_set(m_device, {{0, VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, 1, VK_SHADER_STAGE_ALL, nullptr}});
44 vkt::PipelineLayout pipeline_layout(*m_device, {&descriptor_set.layout_});
45
46 vkt::Buffer buffer(*m_device, 64, VK_BUFFER_USAGE_STORAGE_BUFFER_BIT, kHostVisibleMemProps);
47 uint32_t* buffer_ptr = (uint32_t*)buffer.Memory().Map();
48 buffer_ptr[0] = 60;
49 buffer_ptr[1] = 1;
50
51 descriptor_set.WriteDescriptorBufferInfo(0, buffer, 0, VK_WHOLE_SIZE, VK_DESCRIPTOR_TYPE_STORAGE_BUFFER);
52 descriptor_set.UpdateDescriptorSets();
53
54 CreatePipelineHelper pipe(*this);
55 pipe.gp_ci_.layout = pipeline_layout;
56 pipe.shader_stages_ = {ms.GetStageCreateInfo(), fs.GetStageCreateInfo()};
57 pipe.CreateGraphicsPipeline();
58
59 m_command_buffer.Begin();
60 m_command_buffer.BeginRenderPass(m_renderPassBeginInfo);
61 vk::CmdBindDescriptorSets(m_command_buffer, VK_PIPELINE_BIND_POINT_GRAPHICS, pipeline_layout, 0, 1, &descriptor_set.set_, 0,
62 nullptr);
63 vk::CmdBindPipeline(m_command_buffer, VK_PIPELINE_BIND_POINT_GRAPHICS, pipe);
64 vk::CmdDrawMeshTasksEXT(m_command_buffer, 1, 1, 1);
65 m_command_buffer.EndRenderPass();
66 m_command_buffer.End();
67
68 m_errorMonitor->SetDesiredError("VUID-RuntimeSpirv-MeshEXT-07332");
69 m_default_queue->SubmitAndWait(m_command_buffer);
70 m_errorMonitor->VerifyFound();
71}
72
73TEST_F(NegativeGpuAVMesh, DISABLED_TaskPayloadSharedMissing) {
74 RETURN_IF_SKIP(InitBasicMeshAndTask());

Callers

nothing calls this directly

Calls 15

CmdBindDescriptorSetsFunction · 0.85
CmdBindPipelineFunction · 0.85
CmdDrawMeshTasksEXTFunction · 0.85
CheckSlangSupportFunction · 0.85
EndRenderPassMethod · 0.80
SetDesiredErrorMethod · 0.80
SubmitAndWaitMethod · 0.80
BeginRenderingColorMethod · 0.80
BindMeshShadersMethod · 0.80
EndRenderingMethod · 0.80

Tested by

no test coverage detected