tests: Add features to support GPU validation tests
- Add Instance pNext init to RenderFramework
- Add function to check if using the Mock ICD
- Add "-g" option to VkShaderObj
diff --git a/tests/vktestframework.cpp b/tests/vktestframework.cpp
index 6a065cd..9819a3b 100644
--- a/tests/vktestframework.cpp
+++ b/tests/vktestframework.cpp
@@ -754,7 +754,8 @@
// Compile a given string containing GLSL into SPV for use by VK
// Return value of false means an error was encountered.
//
-bool VkTestFramework::GLSLtoSPV(const VkShaderStageFlagBits shader_type, const char *pshader, std::vector<unsigned int> &spirv) {
+bool VkTestFramework::GLSLtoSPV(const VkShaderStageFlagBits shader_type, const char *pshader, std::vector<unsigned int> &spirv,
+ bool debug) {
glslang::TProgram program;
const char *shaderStrings[1];
@@ -767,6 +768,9 @@
EShMessages messages = EShMsgDefault;
SetMessageOptions(messages);
messages = static_cast<EShMessages>(messages | EShMsgSpvRules | EShMsgVulkanRules);
+ if (debug) {
+ messages = static_cast<EShMessages>(messages | EShMsgDebugInfo);
+ }
EShLanguage stage = FindLanguage(shader_type);
glslang::TShader *shader = new glslang::TShader(stage);
@@ -803,7 +807,11 @@
program.dumpReflection();
}
- glslang::GlslangToSpv(*program.getIntermediate(stage), spirv);
+ glslang::SpvOptions spv_options;
+ if (debug) {
+ spv_options.generateDebugInfo = true;
+ }
+ glslang::GlslangToSpv(*program.getIntermediate(stage), spirv, &spv_options);
//
// Test the different modes of SPIR-V modification