[PATCH vkd3d 1/4] libs/vkd3d-shader: Factor out shader_dump_version().

Józef Kucia joseph.kucia at gmail.com
Tue Jun 5 06:52:56 CDT 2018


From: Józef Kucia <jkucia at codeweavers.com>

Signed-off-by: Józef Kucia <jkucia at codeweavers.com>
---
 libs/vkd3d-shader/trace.c | 58 +++++++++++++++++++++++++----------------------
 1 file changed, 31 insertions(+), 27 deletions(-)

diff --git a/libs/vkd3d-shader/trace.c b/libs/vkd3d-shader/trace.c
index faa009e03a4c..ce8db46b6f21 100644
--- a/libs/vkd3d-shader/trace.c
+++ b/libs/vkd3d-shader/trace.c
@@ -1234,58 +1234,62 @@ static void shader_dump_interpolation_mode(struct vkd3d_string_buffer *buffer,
     }
 }
 
-void vkd3d_shader_trace(void *data)
+static void shader_dump_version(struct vkd3d_string_buffer *buffer,
+        const struct vkd3d_shader_version *shader_version)
 {
-    struct vkd3d_shader_version shader_version;
-    struct vkd3d_string_buffer buffer;
-    const char *type_prefix;
-    const char *p, *q;
-    const DWORD *ptr;
-    DWORD i;
+    const char *prefix;
 
-    if (!string_buffer_init(&buffer))
-    {
-        ERR("Failed to initialize string buffer.\n");
-        return;
-    }
-
-    shader_sm4_read_header(data, &ptr, &shader_version);
-
-    TRACE("Parsing %p.\n", ptr);
-
-    switch (shader_version.type)
+    switch (shader_version->type)
     {
         case VKD3D_SHADER_TYPE_VERTEX:
-            type_prefix = "vs";
+            prefix = "vs";
             break;
 
         case VKD3D_SHADER_TYPE_HULL:
-            type_prefix = "hs";
+            prefix = "hs";
             break;
 
         case VKD3D_SHADER_TYPE_DOMAIN:
-            type_prefix = "ds";
+            prefix = "ds";
             break;
 
         case VKD3D_SHADER_TYPE_GEOMETRY:
-            type_prefix = "gs";
+            prefix = "gs";
             break;
 
         case VKD3D_SHADER_TYPE_PIXEL:
-            type_prefix = "ps";
+            prefix = "ps";
             break;
 
         case VKD3D_SHADER_TYPE_COMPUTE:
-            type_prefix = "cs";
+            prefix = "cs";
             break;
 
         default:
-            FIXME("Unhandled shader type %#x.\n", shader_version.type);
-            type_prefix = "unknown";
+            FIXME("Unhandled shader type %#x.\n", shader_version->type);
+            prefix = "unknown";
             break;
     }
 
-    shader_addline(&buffer, "%s_%u_%u\n", type_prefix, shader_version.major, shader_version.minor);
+    shader_addline(buffer, "%s_%u_%u\n", prefix, shader_version->major, shader_version->minor);
+}
+
+void vkd3d_shader_trace(void *data)
+{
+    struct vkd3d_shader_version shader_version;
+    struct vkd3d_string_buffer buffer;
+    const char *p, *q;
+    const DWORD *ptr;
+    DWORD i;
+
+    if (!string_buffer_init(&buffer))
+    {
+        ERR("Failed to initialize string buffer.\n");
+        return;
+    }
+
+    shader_sm4_read_header(data, &ptr, &shader_version);
+    shader_dump_version(&buffer, &shader_version);
 
     while (!shader_sm4_is_end(data, &ptr))
     {
-- 
2.16.4




More information about the wine-devel mailing list