compiler: Add ability to dump incoming spirv
diff --git a/icd/intel/compiler/shader/compiler_interface.cpp b/icd/intel/compiler/shader/compiler_interface.cpp
index 02a1f4b..7a18633 100644
--- a/icd/intel/compiler/shader/compiler_interface.cpp
+++ b/icd/intel/compiler/shader/compiler_interface.cpp
@@ -438,9 +438,10 @@
     shader_program->Type = shader->Stage;
 
     bool dump_ast = false;
+    bool dump_SPV = false;
     bool dump_hir = false;
 
-    _mesa_glsl_compile_shader(ctx, shader, dump_ast, dump_hir);
+    _mesa_glsl_compile_shader(ctx, shader, dump_ast, dump_SPV, dump_hir);
 
     if (strlen(shader->InfoLog) > 0) {
         printf("Info log:\n%s\n", shader->InfoLog);
diff --git a/icd/intel/compiler/shader/glsl_parser_extras.cpp b/icd/intel/compiler/shader/glsl_parser_extras.cpp
index 2177dba..a2f40b9 100644
--- a/icd/intel/compiler/shader/glsl_parser_extras.cpp
+++ b/icd/intel/compiler/shader/glsl_parser_extras.cpp
@@ -32,6 +32,9 @@
 #include "Frontends/glslang/GlslangToTop.h"
 #include "Frontends/SPIRV/SpvToTop.h"
 #include "SPIRV/GlslangToSpv.h"
+#include "SPIRV/GLSL450Lib.h"
+#include "SPIRV/disassemble.h"
+#include "SPIRV/doc.h"
 #include "glsl_glass_manager.h"
 #include "glsl_glass_backend_translator.h"
 
@@ -1566,9 +1569,11 @@
    }
 }
 
+const char* GlslStd450DebugNames[GLSL_STD_450::Count];
+
 void
 _mesa_glsl_compile_shader(struct gl_context *ctx, struct gl_shader *shader,
-                          bool dump_ast, bool dump_hir)
+                          bool dump_ast, bool dump_SPV, bool dump_hir)
 {
    const char* infoLog = "";
 
@@ -1643,6 +1648,12 @@
                for (int x=0; x<shader->Size; ++x)
                    spv.push_back(((unsigned int *)shader->Source)[x]);
 
+               if (dump_SPV) {
+                   spv::Parameterize();
+                   GLSL_STD_450::GetDebugNames(GlslStd450DebugNames);
+                   spv::Disassemble(std::cout, spv);
+               }
+
                gla::SpvToTop(spv, *manager);
            } else {
                state->error = true;
diff --git a/icd/intel/compiler/shader/program.h b/icd/intel/compiler/shader/program.h
index d44294d..fcd9a45 100644
--- a/icd/intel/compiler/shader/program.h
+++ b/icd/intel/compiler/shader/program.h
@@ -30,7 +30,7 @@
 
 extern void
 _mesa_glsl_compile_shader(struct gl_context *ctx, struct gl_shader *shader,
-			  bool dump_ast, bool dump_hir);
+			  bool dump_ast, bool dump_SPV, bool dump_hir);
 
 #ifdef __cplusplus
 } /* extern "C" */