Mesa (master): spirv: Do something useful with OpSource

Jason Ekstrand jekstrand at kemper.freedesktop.org
Mon Dec 4 17:21:23 UTC 2017


Module: Mesa
Branch: master
Commit: 591a07632c913cadb1802196c0a50480b354d73c
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=591a07632c913cadb1802196c0a50480b354d73c

Author: Jason Ekstrand <jason.ekstrand at intel.com>
Date:   Wed Aug 16 16:38:56 2017 -0700

spirv: Do something useful with OpSource

We may as well log the source language and file name.

Reviewed-by: Tapani Pälli <tapani.palli at intel.com>
Reviewed-by: Ian Romanick <idr at freedesktop.org>

---

 src/compiler/spirv/spirv_to_nir.c | 22 +++++++++++++++++++++-
 1 file changed, 21 insertions(+), 1 deletion(-)

diff --git a/src/compiler/spirv/spirv_to_nir.c b/src/compiler/spirv/spirv_to_nir.c
index a918985daa..676153dace 100644
--- a/src/compiler/spirv/spirv_to_nir.c
+++ b/src/compiler/spirv/spirv_to_nir.c
@@ -2753,7 +2753,27 @@ vtn_handle_preamble_instruction(struct vtn_builder *b, SpvOp opcode,
                                 const uint32_t *w, unsigned count)
 {
    switch (opcode) {
-   case SpvOpSource:
+   case SpvOpSource: {
+      const char *lang;
+      switch (w[1]) {
+      default:
+      case SpvSourceLanguageUnknown:      lang = "unknown";    break;
+      case SpvSourceLanguageESSL:         lang = "ESSL";       break;
+      case SpvSourceLanguageGLSL:         lang = "GLSL";       break;
+      case SpvSourceLanguageOpenCL_C:     lang = "OpenCL C";   break;
+      case SpvSourceLanguageOpenCL_CPP:   lang = "OpenCL C++"; break;
+      case SpvSourceLanguageHLSL:         lang = "HLSL";       break;
+      }
+
+      uint32_t version = w[2];
+
+      const char *file =
+         (count > 3) ? vtn_value(b, w[3], vtn_value_type_string)->str : "";
+
+      vtn_info("Parsing SPIR-V from %s %u source file %s", lang, version, file);
+      break;
+   }
+
    case SpvOpSourceExtension:
    case SpvOpSourceContinued:
    case SpvOpExtension:




More information about the mesa-commit mailing list