xref: /aosp_15_r20/external/deqp/external/vulkancts/modules/vulkan/renderpass/vktRenderPassGroupParams.hpp (revision 35238bce31c2a825756842865a792f8cf7f89930)
1 #ifndef _VKTRENDERPASSGROUPPARAMS_HPP
2 #define _VKTRENDERPASSGROUPPARAMS_HPP
3 
4 /*------------------------------------------------------------------------
5  * Vulkan Conformance Tests
6  * ------------------------
7  *
8  * Copyright (c) 2022 The Khronos Group Inc.
9  *
10  * Licensed under the Apache License, Version 2.0 (the "License");
11  * you may not use this file except in compliance with the License.
12  * You may obtain a copy of the License at
13  *
14  *      http://www.apache.org/licenses/LICENSE-2.0
15  *
16  * Unless required by applicable law or agreed to in writing, software
17  * distributed under the License is distributed on an "AS IS" BASIS,
18  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19  * See the License for the specific language governing permissions and
20  * limitations under the License.
21  *
22  *//*!
23  * \file
24  * \brief Structure with parameters shared by all tests in 'renderpass' group.
25  *//*--------------------------------------------------------------------*/
26 #include "deSharedPtr.hpp"
27 #include "vkPipelineConstructionUtil.hpp"
28 
29 namespace vkt
30 {
31 namespace renderpass
32 {
33 
34 enum RenderingType
35 {
36     RENDERING_TYPE_RENDERPASS_LEGACY = 0,
37     RENDERING_TYPE_RENDERPASS2,
38     RENDERING_TYPE_DYNAMIC_RENDERING
39 };
40 
41 enum SynchronizationType
42 {
43     SYNCHRONIZATION_TYPE_LEGACY = 0,
44     SYNCHRONIZATION_TYPE_SYNCHRONIZATION2,
45 };
46 
47 // Structure containing parameters for all tests in renderpass group
48 struct GroupParams
49 {
50     // Specifies type of renderpass.
51     RenderingType renderingType;
52 
53     // When this flag is true then secondary command buffer is created in test
54     bool useSecondaryCmdBuffer;
55 
56     // When true begin/endRendering is in secondary command buffer, when false those
57     // commands are recorded to primary command buffer. This flag is checked only when
58     // useSecondaryCmdBuffer is true.
59     bool secondaryCmdBufferCompletelyContainsDynamicRenderpass;
60 
61     // Choose pipeline construction type.
62     vk::PipelineConstructionType pipelineConstructionType;
63 };
64 
65 typedef de::SharedPtr<GroupParams> SharedGroupParams;
66 
67 } // namespace renderpass
68 } // namespace vkt
69 
70 #endif // _VKTRENDERPASSGROUPPARAMS_HPP
71