1 #ifndef _VKTSPVASMCOMPUTESHADERCASE_HPP
2 #define _VKTSPVASMCOMPUTESHADERCASE_HPP
3 /*-------------------------------------------------------------------------
4  * Vulkan Conformance Tests
5  * ------------------------
6  *
7  * Copyright (c) 2015 Google Inc.
8  *
9  * Licensed under the Apache License, Version 2.0 (the "License");
10  * you may not use this file except in compliance with the License.
11  * You may obtain a copy of the License at
12  *
13  *      http://www.apache.org/licenses/LICENSE-2.0
14  *
15  * Unless required by applicable law or agreed to in writing, software
16  * distributed under the License is distributed on an "AS IS" BASIS,
17  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18  * See the License for the specific language governing permissions and
19  * limitations under the License.
20  *
21  *//*!
22  * \file
23  * \brief Test Case Skeleton Based on Compute Shaders
24  *//*--------------------------------------------------------------------*/
25 
26 #include "vkPrograms.hpp"
27 #include "vktTestCase.hpp"
28 
29 #include "vktSpvAsmComputeShaderTestUtil.hpp"
30 
31 namespace vkt
32 {
33 namespace SpirVAssembly
34 {
35 
36 class SpvAsmComputeShaderCase : public TestCase
37 {
38 public:
39 						SpvAsmComputeShaderCase	(tcu::TestContext& testCtx, const char* name, const char* description, const ComputeShaderSpec& spec);
40 	void				initPrograms			(vk::SourceCollections& programCollection) const;
41 	TestInstance*		createInstance			(Context& ctx) const;
42 
43 private:
44 	ComputeShaderSpec	m_shaderSpec;
45 };
46 
47 enum ConvertTestFeatures
48 {
49 	CONVERT_TEST_USES_INT16,
50 	CONVERT_TEST_USES_INT64,
51 	CONVERT_TEST_USES_INT16_INT64,
52 };
53 
54 class ConvertTestCase : public SpvAsmComputeShaderCase
55 {
56 public:
57 						ConvertTestCase	(tcu::TestContext& testCtx, const char* name, const char* description, const ComputeShaderSpec& spec, const ConvertTestFeatures features);
58 	TestInstance*		createInstance	(Context& ctx) const;
59 private:
60 	ComputeShaderSpec			m_shaderSpec;
61 	const ConvertTestFeatures	m_features;
62 };
63 
64 } // SpirVAssembly
65 } // vkt
66 
67 #endif // _VKTSPVASMCOMPUTESHADERCASE_HPP
68