initial checkin of SkSL compiler

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1984363002
CQ_EXTRA_TRYBOTS=client.skia.compile:Build-Ubuntu-GCC-x86_64-Release-CMake-Trybot,Build-Mac-Clang-x86_64-Release-CMake-Trybot

Review-Url: https://codereview.chromium.org/1984363002
diff --git a/src/gpu/vk/GrVkGpu.h b/src/gpu/vk/GrVkGpu.h
index 3373abd..542917e 100644
--- a/src/gpu/vk/GrVkGpu.h
+++ b/src/gpu/vk/GrVkGpu.h
@@ -8,6 +8,8 @@
 #ifndef GrVkGpu_DEFINED
 #define GrVkGpu_DEFINED
 
+#define USE_SKSL 1
+
 #include "GrGpu.h"
 #include "GrGpuFactory.h"
 #include "vk/GrVkBackendContext.h"
@@ -18,7 +20,14 @@
 #include "GrVkVertexBuffer.h"
 #include "GrVkUtil.h"
 
+#if USE_SKSL
+namespace SkSL {
+    class Compiler;
+}
+#else
 #include "shaderc/shaderc.h"
+#endif
+
 #include "vk/GrVkDefines.h"
 
 class GrPipeline;
@@ -111,9 +120,15 @@
                                bool byRegion,
                                VkImageMemoryBarrier* barrier) const;
 
+#if USE_SKSL
+    SkSL::Compiler* shaderCompiler() const {
+        return fCompiler;
+    }
+#else
     shaderc_compiler_t shadercCompiler() const {
         return fCompiler;
     }
+#endif
 
     void submitSecondaryCommandBuffer(const GrVkSecondaryCommandBuffer*,
                                       const GrVkRenderPass*,
@@ -242,10 +257,13 @@
     VkDebugReportCallbackEXT               fCallback;
 #endif
 
+#if USE_SKSL
+    SkSL::Compiler* fCompiler;
+#else
     // Shaderc compiler used for compiling glsl in spirv. We only want to create the compiler once
     // since there is significant overhead to the first compile of any compiler.
     shaderc_compiler_t fCompiler;
-
+#endif
 
     typedef GrGpu INHERITED;
 };