Fix RT misc tests (querying shaderfloat64)
authormarz <marcin.zajac@mobica.com>
Thu, 8 Apr 2021 10:01:37 +0000 (12:01 +0200)
committerAlexander Galazin <Alexander.Galazin@arm.com>
Fri, 16 Apr 2021 06:28:50 +0000 (06:28 +0000)
Presence of data types that use double in shaders
wasn’t properly detected, the issue was solved
by changing conditions in usesF64 function.

VK-GL-CTS issue: 2867

Components: Vulkan

Affects:
dEQP-VK.ray_tracing_pipeline.misc.*

Change-Id: Id24366f758878bb9c8a34c5d74cdaad1dcd2a469

external/vulkancts/modules/vulkan/ray_tracing/vktRayTracingMiscTests.cpp

index 99db8ad..037b15f 100644 (file)
@@ -4175,18 +4175,27 @@ public:
                const auto tested_var_types = getVarsToTest(testType);
                const bool has_f64                      = std::find     (       tested_var_types.begin  (),
                                                                                                        tested_var_types.end    (),
-                                                                                                       VariableType::FLOAT) != tested_var_types.end();
+                                                                                                       VariableType::DOUBLE) != tested_var_types.end();
                const bool has_f64vec2          = std::find     (       tested_var_types.begin  (),
                                                                                                        tested_var_types.end    (),
-                                                                                                       VariableType::VEC2) != tested_var_types.end();
+                                                                                                       VariableType::DVEC2) != tested_var_types.end();
                const bool has_f64vec3          = std::find     (       tested_var_types.begin  (),
                                                                                                        tested_var_types.end    (),
-                                                                                                       VariableType::VEC3) != tested_var_types.end();
+                                                                                                       VariableType::DVEC3) != tested_var_types.end();
                const bool has_f64vec4          = std::find     (       tested_var_types.begin  (),
                                                                                                        tested_var_types.end    (),
-                                                                                                       VariableType::VEC4) != tested_var_types.end();
+                                                                                                       VariableType::DVEC4) != tested_var_types.end();
+               const bool has_f64mat2          = std::find     (       tested_var_types.begin  (),
+                                                                                                       tested_var_types.end    (),
+                                                                                                       VariableType::DMAT2) != tested_var_types.end();
+               const bool has_f64mat3          = std::find     (       tested_var_types.begin  (),
+                                                                                                       tested_var_types.end    (),
+                                                                                                       VariableType::DMAT3) != tested_var_types.end();
+               const bool has_f64mat4          = std::find     (       tested_var_types.begin  (),
+                                                                                                       tested_var_types.end    (),
+                                                                                                       VariableType::DMAT4) != tested_var_types.end();
 
-               return (has_f64 || has_f64vec2 || has_f64vec3 || has_f64vec4);
+               return (has_f64 || has_f64vec2 || has_f64vec3 || has_f64vec4 || has_f64mat2 || has_f64mat3 || has_f64mat4);
        }
 
        static bool usesI8(const TestType& testType)