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

Function TEST_F

tests/unit/atomics.cpp:20–69  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

18class NegativeAtomic : public VkLayerTest {};
19
20TEST_F(NegativeAtomic, VertexStoresAndAtomicsFeatureDisable) {
21 TEST_DESCRIPTION("Run shader with StoreOp or AtomicOp to verify if vertexPipelineStoresAndAtomics disable.");
22 SetTargetApiVersion(VK_API_VERSION_1_1);
23 AddRequiredExtensions(VK_EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME);
24 AddRequiredFeature(vkt::Feature::shaderImageFloat32Atomics);
25
26 RETURN_IF_SKIP(Init());
27 InitRenderTarget();
28
29 // Test StoreOp
30 {
31 const char* vsSource = R"glsl(
32 #version 450
33 layout(set=0, binding=0, rgba8) uniform image2D si0;
34 void main() {
35 imageStore(si0, ivec2(0), vec4(0));
36 }
37 )glsl";
38
39 VkShaderObj vs(*m_device, vsSource, VK_SHADER_STAGE_VERTEX_BIT);
40
41 auto info_override = [&](CreatePipelineHelper& info) {
42 info.shader_stages_ = {vs.GetStageCreateInfo(), info.fs_->GetStageCreateInfo()};
43 info.dsl_bindings_[0] = {0, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, 1, VK_SHADER_STAGE_VERTEX_BIT, nullptr};
44 };
45
46 CreatePipelineHelper::OneshotTest(*this, info_override, kErrorBit, "VUID-RuntimeSpirv-NonWritable-06341");
47 }
48
49 // Test AtomicOp
50 {
51 const char* vsSource = R"glsl(
52 #version 450
53 layout(set=0, binding=0, r32f) uniform image2D si0;
54 void main() {
55 imageAtomicExchange(si0, ivec2(0), 1);
56 }
57 )glsl";
58
59 VkShaderObj vs(*m_device, vsSource, VK_SHADER_STAGE_VERTEX_BIT, SPV_ENV_VULKAN_1_0, SPV_SOURCE_GLSL_TRY);
60 if (VK_SUCCESS == vs.InitFromGLSLTry()) {
61 auto info_override = [&](CreatePipelineHelper& info) {
62 info.shader_stages_ = {vs.GetStageCreateInfo(), info.fs_->GetStageCreateInfo()};
63 info.dsl_bindings_[0] = {0, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, 1, VK_SHADER_STAGE_VERTEX_BIT, nullptr};
64 };
65
66 CreatePipelineHelper::OneshotTest(*this, info_override, kErrorBit, "VUID-RuntimeSpirv-NonWritable-06341");
67 }
68 }
69}
70
71TEST_F(NegativeAtomic, FragmentStoresAndAtomicsFeatureDisable) {
72 TEST_DESCRIPTION("Run shader with StoreOp or AtomicOp to verify if fragmentStoresAndAtomics disable.");

Callers

nothing calls this directly

Calls 15

VkShaderObjClass · 0.85
CmdBindPipelineFunction · 0.85
CmdBindDescriptorSetsFunction · 0.85
CmdDispatchFunction · 0.85
IsImageFormatSupportedFunction · 0.85
CmdDrawMeshTasksEXTFunction · 0.85
CmdDrawFunction · 0.85
InitFromGLSLTryMethod · 0.80
SetDesiredErrorMethod · 0.80
c_strMethod · 0.80

Tested by

no test coverage detected