Add RenderThreadInfoVk

... and move VkDecoder into a RenderThreadInfoVk to have an object
to package VK info into to parallel RenderThreadInfoGl in
aosp/2167843.

This is useful for upcoming changes to avoid a circular dependency
between `libgfxstream_backend` and `gfxstream_vulkan_server` when
wanting to have thread info in VkDecoderGlobalState.

Bug: b/233939967
Test: cvd start --gpu_mode=gfxstream --enable_gpu_angle=true
Change-Id: I6cb73a122253e0e897100ba95c1bff32c0234310
diff --git a/stream-servers/RenderThread.cpp b/stream-servers/RenderThread.cpp
index 5310e2b..88eb3b8 100644
--- a/stream-servers/RenderThread.cpp
+++ b/stream-servers/RenderThread.cpp
@@ -295,7 +295,7 @@
     // it's completely initialized before running any GL commands.
     FrameBuffer::waitUntilInitialized();
     if (goldfish_vk::getGlobalVkEmulation()) {
-        tInfo.m_vkDec = std::make_unique<VkDecoder>();
+        tInfo.m_vkInfo.emplace();
     }
 
     // This is the only place where we try loading from snapshot.
@@ -451,9 +451,9 @@
             //
             // Note: It's risky to limit Vulkan decoding to one thread,
             // so we do it outside the limiter
-            if (tInfo.m_vkDec) {
-                last = tInfo.m_vkDec->decode(readBuf.buf(), readBuf.validData(), ioStream, seqnoPtr,
-                                             gfxLogger);
+            if (tInfo.m_vkInfo) {
+                last = tInfo.m_vkInfo->m_vkDec.decode(readBuf.buf(), readBuf.validData(), ioStream,
+                                                      seqnoPtr, gfxLogger);
                 if (last > 0) {
                     readBuf.consume(last);
                     progress = true;