[PATCH vkd3d 06/10] include: Introduce a common macro for defining tags.

Henri Verbeet hverbeet at codeweavers.com
Tue Mar 1 06:21:32 CST 2022


Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
---
 include/private/vkd3d_common.h           |  4 +++
 libs/vkd3d-shader/hlsl_sm1.c             |  2 +-
 libs/vkd3d-shader/vkd3d_shader_private.h | 35 +++++++++++-------------
 libs/vkd3d/vkd3d_private.h               | 14 ++++------
 programs/vkd3d-compiler/main.c           |  5 +---
 5 files changed, 28 insertions(+), 32 deletions(-)

diff --git a/include/private/vkd3d_common.h b/include/private/vkd3d_common.h
index ac556850..ebf05216 100644
--- a/include/private/vkd3d_common.h
+++ b/include/private/vkd3d_common.h
@@ -42,6 +42,10 @@
 
 #define MEMBER_SIZE(t, m) sizeof(((t *)0)->m)
 
+#define VKD3D_MAKE_TAG(ch0, ch1, ch2, ch3) \
+        ((uint32_t)(ch0) | ((uint32_t)(ch1) << 8) \
+        | ((uint32_t)(ch2) << 16) | ((uint32_t)(ch3) << 24))
+
 static inline size_t align(size_t addr, size_t alignment)
 {
     return (addr + (alignment - 1)) & ~(alignment - 1);
diff --git a/libs/vkd3d-shader/hlsl_sm1.c b/libs/vkd3d-shader/hlsl_sm1.c
index 1868bb70..90ec6058 100644
--- a/libs/vkd3d-shader/hlsl_sm1.c
+++ b/libs/vkd3d-shader/hlsl_sm1.c
@@ -335,7 +335,7 @@ static void write_sm1_uniforms(struct hlsl_ctx *ctx, struct vkd3d_bytecode_buffe
     sm1_sort_externs(ctx);
 
     size_offset = put_u32(buffer, 0);
-    ctab_offset = put_u32(buffer, MAKEFOURCC('C','T','A','B'));
+    ctab_offset = put_u32(buffer, VKD3D_MAKE_TAG('C','T','A','B'));
 
     ctab_start = put_u32(buffer, sizeof(D3DXSHADER_CONSTANTTABLE));
     creator_offset = put_u32(buffer, 0);
diff --git a/libs/vkd3d-shader/vkd3d_shader_private.h b/libs/vkd3d-shader/vkd3d_shader_private.h
index 2deaa46c..60c86155 100644
--- a/libs/vkd3d-shader/vkd3d_shader_private.h
+++ b/libs/vkd3d-shader/vkd3d_shader_private.h
@@ -1232,25 +1232,22 @@ static inline void *vkd3d_find_struct_(const struct vkd3d_struct *chain,
 #define VKD3D_DXBC_MAX_SOURCE_COUNT 6
 #define VKD3D_DXBC_HEADER_SIZE (8 * sizeof(uint32_t))
 
-#define MAKE_TAG(ch0, ch1, ch2, ch3) \
-    ((DWORD)(ch0) | ((DWORD)(ch1) << 8) | \
-    ((DWORD)(ch2) << 16) | ((DWORD)(ch3) << 24 ))
-#define TAG_AON9 MAKE_TAG('A', 'o', 'n', '9')
-#define TAG_DXBC MAKE_TAG('D', 'X', 'B', 'C')
-#define TAG_DXIL MAKE_TAG('D', 'X', 'I', 'L')
-#define TAG_ISG1 MAKE_TAG('I', 'S', 'G', '1')
-#define TAG_ISGN MAKE_TAG('I', 'S', 'G', 'N')
-#define TAG_OSG1 MAKE_TAG('O', 'S', 'G', '1')
-#define TAG_OSG5 MAKE_TAG('O', 'S', 'G', '5')
-#define TAG_OSGN MAKE_TAG('O', 'S', 'G', 'N')
-#define TAG_PCSG MAKE_TAG('P', 'C', 'S', 'G')
-#define TAG_PSG1 MAKE_TAG('P', 'S', 'G', '1')
-#define TAG_RD11 MAKE_TAG('R', 'D', '1', '1')
-#define TAG_RDEF MAKE_TAG('R', 'D', 'E', 'F')
-#define TAG_RTS0 MAKE_TAG('R', 'T', 'S', '0')
-#define TAG_SHDR MAKE_TAG('S', 'H', 'D', 'R')
-#define TAG_SHEX MAKE_TAG('S', 'H', 'E', 'X')
-#define TAG_TEXT MAKE_TAG('T', 'E', 'X', 'T')
+#define TAG_AON9 VKD3D_MAKE_TAG('A', 'o', 'n', '9')
+#define TAG_DXBC VKD3D_MAKE_TAG('D', 'X', 'B', 'C')
+#define TAG_DXIL VKD3D_MAKE_TAG('D', 'X', 'I', 'L')
+#define TAG_ISG1 VKD3D_MAKE_TAG('I', 'S', 'G', '1')
+#define TAG_ISGN VKD3D_MAKE_TAG('I', 'S', 'G', 'N')
+#define TAG_OSG1 VKD3D_MAKE_TAG('O', 'S', 'G', '1')
+#define TAG_OSG5 VKD3D_MAKE_TAG('O', 'S', 'G', '5')
+#define TAG_OSGN VKD3D_MAKE_TAG('O', 'S', 'G', 'N')
+#define TAG_PCSG VKD3D_MAKE_TAG('P', 'C', 'S', 'G')
+#define TAG_PSG1 VKD3D_MAKE_TAG('P', 'S', 'G', '1')
+#define TAG_RD11 VKD3D_MAKE_TAG('R', 'D', '1', '1')
+#define TAG_RDEF VKD3D_MAKE_TAG('R', 'D', 'E', 'F')
+#define TAG_RTS0 VKD3D_MAKE_TAG('R', 'T', 'S', '0')
+#define TAG_SHDR VKD3D_MAKE_TAG('S', 'H', 'D', 'R')
+#define TAG_SHEX VKD3D_MAKE_TAG('S', 'H', 'E', 'X')
+#define TAG_TEXT VKD3D_MAKE_TAG('T', 'E', 'X', 'T')
 
 struct dxbc_writer_section
 {
diff --git a/libs/vkd3d/vkd3d_private.h b/libs/vkd3d/vkd3d_private.h
index ca7a3f22..ac0d5ce1 100644
--- a/libs/vkd3d/vkd3d_private.h
+++ b/libs/vkd3d/vkd3d_private.h
@@ -44,17 +44,15 @@
 
 #define VK_CALL(f) (vk_procs->f)
 
-#define MAKE_MAGIC(a,b,c,f) (((uint32_t)a) | (((uint32_t)b) << 8) | (((uint32_t)c) << 16) | f)
-
 #define VKD3D_DESCRIPTOR_MAGIC_HAS_VIEW 0x01000000u
 
 #define VKD3D_DESCRIPTOR_MAGIC_FREE    0x00000000u
-#define VKD3D_DESCRIPTOR_MAGIC_CBV     MAKE_MAGIC('C', 'B', 'V', 0)
-#define VKD3D_DESCRIPTOR_MAGIC_SRV     MAKE_MAGIC('S', 'R', 'V', VKD3D_DESCRIPTOR_MAGIC_HAS_VIEW)
-#define VKD3D_DESCRIPTOR_MAGIC_UAV     MAKE_MAGIC('U', 'A', 'V', VKD3D_DESCRIPTOR_MAGIC_HAS_VIEW)
-#define VKD3D_DESCRIPTOR_MAGIC_SAMPLER MAKE_MAGIC('S', 'M', 'P', VKD3D_DESCRIPTOR_MAGIC_HAS_VIEW)
-#define VKD3D_DESCRIPTOR_MAGIC_DSV     MAKE_MAGIC('D', 'S', 'V', 0)
-#define VKD3D_DESCRIPTOR_MAGIC_RTV     MAKE_MAGIC('R', 'T', 'V', 0)
+#define VKD3D_DESCRIPTOR_MAGIC_CBV     VKD3D_MAKE_TAG('C', 'B', 'V', 0)
+#define VKD3D_DESCRIPTOR_MAGIC_SRV     VKD3D_MAKE_TAG('S', 'R', 'V', 1)
+#define VKD3D_DESCRIPTOR_MAGIC_UAV     VKD3D_MAKE_TAG('U', 'A', 'V', 1)
+#define VKD3D_DESCRIPTOR_MAGIC_SAMPLER VKD3D_MAKE_TAG('S', 'M', 'P', 1)
+#define VKD3D_DESCRIPTOR_MAGIC_DSV     VKD3D_MAKE_TAG('D', 'S', 'V', 0)
+#define VKD3D_DESCRIPTOR_MAGIC_RTV     VKD3D_MAKE_TAG('R', 'T', 'V', 0)
 
 #define VKD3D_MAX_COMPATIBLE_FORMAT_COUNT 6u
 #define VKD3D_MAX_QUEUE_FAMILY_COUNT      3u
diff --git a/programs/vkd3d-compiler/main.c b/programs/vkd3d-compiler/main.c
index 2f330f62..ab475617 100644
--- a/programs/vkd3d-compiler/main.c
+++ b/programs/vkd3d-compiler/main.c
@@ -50,10 +50,7 @@ enum
     OPTION_TEXT_FORMATTING,
 };
 
-#define MAKE_TAG(ch0, ch1, ch2, ch3) \
-    ((DWORD)(ch0) | ((DWORD)(ch1) << 8) | \
-    ((DWORD)(ch2) << 16) | ((DWORD)(ch3) << 24 ))
-#define TAG_DXBC MAKE_TAG('D', 'X', 'B', 'C')
+#define TAG_DXBC VKD3D_MAKE_TAG('D', 'X', 'B', 'C')
 
 static const struct source_type_info
 {
-- 
2.20.1




More information about the wine-devel mailing list