Refactor: Compatible compute and graphics VerifyIO
[platform/upstream/VK-GL-CTS.git] / external / vulkancts / modules / vulkan / spirv_assembly / vktSpvAsmGraphicsShaderTestUtil.hpp
index ad83216..b53d2f9 100644 (file)
@@ -56,8 +56,7 @@ typedef vk::Unique<vk::VkShaderModule>                                                                ModuleHandleUp;
 typedef de::SharedPtr<ModuleHandleUp>                                                          ModuleHandleSp;
 typedef std::pair<std::string, vk::VkShaderStageFlagBits>                      EntryToStage;
 typedef std::map<std::string, std::vector<EntryToStage> >                      ModuleMap;
-typedef std::map<vk::VkShaderStageFlagBits, std::vector<deInt32> >     StageToSpecConstantMap;
-typedef std::pair<vk::VkDescriptorType, BufferSp>                                      Resource;
+typedef std::map<vk::VkShaderStageFlagBits, SpecConstants >                    StageToSpecConstantMap;
 
 enum NumberType
 {
@@ -76,11 +75,6 @@ typedef enum RoundingModeFlags_e
        ROUNDINGMODE_RTZ = 0x2, // Round to zero
 } RoundingModeFlags;
 
-typedef bool (*GraphicsVerifyIOFunc) (const std::vector<Resource>&             inputs,
-                                                                         const std::vector<AllocationSp>&      outputAllocations,
-                                                                         const std::vector<Resource>&          expectedOutputs,
-                                                                         tcu::TestLog&                                         log);
-
 typedef bool (*GraphicsVerifyBinaryFunc) (const ProgramBinary& binary);
 
 // Resources used by graphics-pipeline-based tests.
@@ -100,7 +94,7 @@ struct GraphicsResources
        // be called. If true is returned, then the test case is assumed to
        // have passed, if false is returned, then the test case is assumed
        // to have failed.
-       GraphicsVerifyIOFunc            verifyIO;
+       VerifyIOFunc                            verifyIO;
        GraphicsVerifyBinaryFunc        verifyBinary;
        SpirvVersion                            spirvVersion;
 
@@ -287,6 +281,7 @@ struct InstanceContext
        GraphicsInterfaces                                              interfaces;
        qpTestResult                                                    failResult;
        std::string                                                             failMessageTemplate;    //!< ${reason} in the template will be replaced with a detailed failure message
+       bool                                                                    renderFullSquare;               // Forces to render whole render area, though with background color
 
        InstanceContext (const tcu::RGBA                                                        (&inputs)[4],
                                         const tcu::RGBA                                                        (&outputs)[4],
@@ -423,7 +418,7 @@ void createTestForStage (vk::VkShaderStageFlagBits                                  stage,
                                                 const tcu::RGBA                                                        (&inputColors)[4],
                                                 const tcu::RGBA                                                        (&outputColors)[4],
                                                 const std::map<std::string, std::string>&      testCodeFragments,
-                                                const std::vector<deInt32>&                            specConstants,
+                                                const SpecConstants&                                           specConstants,
                                                 const PushConstants&                                           pushConstants,
                                                 const GraphicsResources&                                       resources,
                                                 const GraphicsInterfaces&                                      interfaces,
@@ -432,13 +427,14 @@ void createTestForStage (vk::VkShaderStageFlagBits                                        stage,
                                                 VulkanFeatures                                                         vulkanFeatures,
                                                 tcu::TestCaseGroup*                                            tests,
                                                 const qpTestResult                                                     failResult                      = QP_TEST_RESULT_FAIL,
-                                                const std::string&                                                     failMessageTemplate = std::string());
+                                                const std::string&                                                     failMessageTemplate = std::string(),
+                                                const bool                                                                     renderFullSquare        = false);
 
 void createTestsForAllStages (const std::string&                                               name,
                                                          const tcu::RGBA                                                       (&inputColors)[4],
                                                          const tcu::RGBA                                                       (&outputColors)[4],
                                                          const std::map<std::string, std::string>&     testCodeFragments,
-                                                         const std::vector<deInt32>&                           specConstants,
+                                                         const SpecConstants&                                          specConstants,
                                                          const PushConstants&                                          pushConstants,
                                                          const GraphicsResources&                                      resources,
                                                          const GraphicsInterfaces&                                     interfaces,
@@ -457,7 +453,7 @@ inline void createTestsForAllStages (const std::string&                                                     name,
                                                                         const qpTestResult                                                     failResult                      = QP_TEST_RESULT_FAIL,
                                                                         const std::string&                                                     failMessageTemplate     = std::string())
 {
-       std::vector<deInt32>            noSpecConstants;
+       SpecConstants                           noSpecConstants;
        PushConstants                           noPushConstants;
        GraphicsResources                       noResources;
        GraphicsInterfaces                      noInterfaces;
@@ -474,7 +470,7 @@ inline void createTestsForAllStages (const std::string&                                                     name,
                                                                         const tcu::RGBA                                                        (&inputColors)[4],
                                                                         const tcu::RGBA                                                        (&outputColors)[4],
                                                                         const std::map<std::string, std::string>&      testCodeFragments,
-                                                                        const std::vector<deInt32>&                            specConstants,
+                                                                        const SpecConstants&                                           specConstants,
                                                                         tcu::TestCaseGroup*                                            tests,
                                                                         const qpTestResult                                                     failResult                      = QP_TEST_RESULT_FAIL,
                                                                         const std::string&                                                     failMessageTemplate     = std::string())
@@ -502,7 +498,7 @@ inline void createTestsForAllStages (const std::string&                                                     name,
                                                                         const qpTestResult                                                     failResult                      = QP_TEST_RESULT_FAIL,
                                                                         const std::string&                                                     failMessageTemplate     = std::string())
 {
-       std::vector<deInt32>            noSpecConstants;
+       SpecConstants                           noSpecConstants;
        PushConstants                           noPushConstants;
        GraphicsInterfaces                      noInterfaces;
        std::vector<std::string>        noFeatures;
@@ -525,7 +521,7 @@ inline void createTestsForAllStages (const std::string&                                                     name,
                                                                         const qpTestResult                                                     failResult                      = QP_TEST_RESULT_FAIL,
                                                                         const std::string&                                                     failMessageTemplate     = std::string())
 {
-       std::vector<deInt32>            noSpecConstants;
+       SpecConstants                           noSpecConstants;
        PushConstants                           noPushConstants;
        GraphicsInterfaces                      noInterfaces;
 
@@ -547,7 +543,7 @@ inline void createTestsForAllStages (const std::string& name,
                                                                         const std::string&                                                     failMessageTemplate     = std::string())
 {
        GraphicsResources                       noResources;
-       std::vector<deInt32>            noSpecConstants;
+       SpecConstants                           noSpecConstants;
        std::vector<std::string>        noFeatures;
        PushConstants                           noPushConstants;
 
@@ -569,7 +565,7 @@ inline void createTestsForAllStages (const std::string& name,
                                                                         const qpTestResult                                                     failResult                      = QP_TEST_RESULT_FAIL,
                                                                         const std::string&                                                     failMessageTemplate     = std::string())
 {
-       std::vector<deInt32>                    noSpecConstants;
+       SpecConstants                                   noSpecConstants;
        GraphicsInterfaces                              noInterfaces;
        std::vector<std::string>                noFeatures;