• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #ifndef _VKTIMAGEATOMICSPIRVSHADERS_HPP
2 #define _VKTIMAGEATOMICSPIRVSHADERS_HPP
3 /*------------------------------------------------------------------------
4  * Vulkan Conformance Tests
5  * ------------------------
6  *
7  * Copyright (c) 2020 Valve Corporation.
8  * Copyright (c) 2020 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 Helper SPIR-V shaders for some image atomic operations.
25  *//*--------------------------------------------------------------------*/
26 #include "vktImageTestsUtil.hpp"
27 
28 #include <string>
29 
30 namespace vkt
31 {
32 namespace image
33 {
34 
35 // Test case variant, used when deciding which SPIR-V shader to get.
36 struct CaseVariant
37 {
38 	enum CheckType
39 	{
40 		CHECK_TYPE_INTERMEDIATE_RESULTS = 0,
41 		CHECK_TYPE_END_RESULTS,
42 	};
43 
44 	ImageType			imageType;
45 	tcu::TextureFormat	textureFormat;
46 	CheckType			checkType;
47 
48 	// Allows this struct to be used as key in maps.
49 	bool operator< (const CaseVariant& other) const;
50 
51 	// Constructor.
52 	CaseVariant (ImageType imgtype, tcu::TextureFormat::ChannelOrder order, tcu::TextureFormat::ChannelType chtype, CheckType cktype);
53 };
54 
55 // Gets the shader template for the appropriate case variant.
56 std::string getSpirvAtomicOpShader (const CaseVariant& caseVariant);
57 
58 } // namespace image
59 } // namespace vkt
60 
61 #endif // _VKTIMAGEATOMICSPIRVSHADERS_HPP
62