Henri Verbeet : vkd3d-shader: Merge the vkd3d_shader_descriptor_type and vkd3d_shader_descriptor_range_type enumerations.

Alexandre Julliard julliard at winehq.org
Tue Aug 4 15:26:29 CDT 2020


Module: vkd3d
Branch: master
Commit: dae87cc1c0b856c7758a6fcd6f5bd6c5a0474a16
URL:    https://source.winehq.org/git/vkd3d.git/?a=commit;h=dae87cc1c0b856c7758a6fcd6f5bd6c5a0474a16

Author: Henri Verbeet <hverbeet at codeweavers.com>
Date:   Tue Aug  4 15:01:33 2020 +0430

vkd3d-shader: Merge the vkd3d_shader_descriptor_type and vkd3d_shader_descriptor_range_type enumerations.

Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 include/vkd3d_shader.h    | 23 ++++++-----------------
 libs/vkd3d-shader/dxbc.c  | 16 ++++++++--------
 libs/vkd3d-shader/spirv.c |  5 +++--
 3 files changed, 17 insertions(+), 27 deletions(-)

diff --git a/include/vkd3d_shader.h b/include/vkd3d_shader.h
index 26a2110..de2c0c7 100644
--- a/include/vkd3d_shader.h
+++ b/include/vkd3d_shader.h
@@ -88,11 +88,10 @@ struct vkd3d_shader_code
 
 enum vkd3d_shader_descriptor_type
 {
-    VKD3D_SHADER_DESCRIPTOR_TYPE_UNKNOWN,
-    VKD3D_SHADER_DESCRIPTOR_TYPE_CBV,     /* cb# */
-    VKD3D_SHADER_DESCRIPTOR_TYPE_SRV,     /* t#  */
-    VKD3D_SHADER_DESCRIPTOR_TYPE_UAV,     /* u#  */
-    VKD3D_SHADER_DESCRIPTOR_TYPE_SAMPLER, /* s#  */
+    VKD3D_SHADER_DESCRIPTOR_TYPE_SRV     = 0x0, /* t#  */
+    VKD3D_SHADER_DESCRIPTOR_TYPE_UAV     = 0x1, /* u#  */
+    VKD3D_SHADER_DESCRIPTOR_TYPE_CBV     = 0x2, /* cb# */
+    VKD3D_SHADER_DESCRIPTOR_TYPE_SAMPLER = 0x3, /* s#  */
 
     VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_DESCRIPTOR_TYPE),
 };
@@ -450,19 +449,9 @@ struct vkd3d_shader_static_sampler_desc
     enum vkd3d_shader_visibility shader_visibility;
 };
 
-enum vkd3d_shader_descriptor_range_type
-{
-    VKD3D_SHADER_DESCRIPTOR_RANGE_TYPE_SRV     = 0x0,
-    VKD3D_SHADER_DESCRIPTOR_RANGE_TYPE_UAV     = 0x1,
-    VKD3D_SHADER_DESCRIPTOR_RANGE_TYPE_CBV     = 0x2,
-    VKD3D_SHADER_DESCRIPTOR_RANGE_TYPE_SAMPLER = 0x3,
-
-    VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_DESCRIPTOR_RANGE_TYPE),
-};
-
 struct vkd3d_shader_descriptor_range
 {
-    enum vkd3d_shader_descriptor_range_type range_type;
+    enum vkd3d_shader_descriptor_type range_type;
     unsigned int descriptor_count;
     unsigned int base_shader_register;
     unsigned int register_space;
@@ -558,7 +547,7 @@ enum vkd3d_shader_descriptor_range_flags
 
 struct vkd3d_shader_descriptor_range1
 {
-    enum vkd3d_shader_descriptor_range_type range_type;
+    enum vkd3d_shader_descriptor_type range_type;
     unsigned int descriptor_count;
     unsigned int base_shader_register;
     unsigned int register_space;
diff --git a/libs/vkd3d-shader/dxbc.c b/libs/vkd3d-shader/dxbc.c
index df5f6a2..1aa8a5c 100644
--- a/libs/vkd3d-shader/dxbc.c
+++ b/libs/vkd3d-shader/dxbc.c
@@ -3143,13 +3143,13 @@ static int validate_descriptor_table_v_1_0(const struct vkd3d_shader_root_descri
     {
         const struct vkd3d_shader_descriptor_range *r = &descriptor_table->descriptor_ranges[i];
 
-        if (r->range_type == VKD3D_SHADER_DESCRIPTOR_RANGE_TYPE_SRV
-                || r->range_type == VKD3D_SHADER_DESCRIPTOR_RANGE_TYPE_UAV
-                || r->range_type == VKD3D_SHADER_DESCRIPTOR_RANGE_TYPE_CBV)
+        if (r->range_type == VKD3D_SHADER_DESCRIPTOR_TYPE_SRV
+                || r->range_type == VKD3D_SHADER_DESCRIPTOR_TYPE_UAV
+                || r->range_type == VKD3D_SHADER_DESCRIPTOR_TYPE_CBV)
         {
             have_srv_uav_cbv = true;
         }
-        else if (r->range_type == VKD3D_SHADER_DESCRIPTOR_RANGE_TYPE_SAMPLER)
+        else if (r->range_type == VKD3D_SHADER_DESCRIPTOR_TYPE_SAMPLER)
         {
             have_sampler = true;
         }
@@ -3184,13 +3184,13 @@ static int validate_descriptor_table_v_1_1(const struct vkd3d_shader_root_descri
     {
         const struct vkd3d_shader_descriptor_range1 *r = &descriptor_table->descriptor_ranges[i];
 
-        if (r->range_type == VKD3D_SHADER_DESCRIPTOR_RANGE_TYPE_SRV
-                || r->range_type == VKD3D_SHADER_DESCRIPTOR_RANGE_TYPE_UAV
-                || r->range_type == VKD3D_SHADER_DESCRIPTOR_RANGE_TYPE_CBV)
+        if (r->range_type == VKD3D_SHADER_DESCRIPTOR_TYPE_SRV
+                || r->range_type == VKD3D_SHADER_DESCRIPTOR_TYPE_UAV
+                || r->range_type == VKD3D_SHADER_DESCRIPTOR_TYPE_CBV)
         {
             have_srv_uav_cbv = true;
         }
-        else if (r->range_type == VKD3D_SHADER_DESCRIPTOR_RANGE_TYPE_SAMPLER)
+        else if (r->range_type == VKD3D_SHADER_DESCRIPTOR_TYPE_SAMPLER)
         {
             have_sampler = true;
         }
diff --git a/libs/vkd3d-shader/spirv.c b/libs/vkd3d-shader/spirv.c
index 4d1826f..9ef0430 100644
--- a/libs/vkd3d-shader/spirv.c
+++ b/libs/vkd3d-shader/spirv.c
@@ -2364,7 +2364,6 @@ static struct vkd3d_shader_descriptor_binding vkd3d_dxbc_compiler_get_descriptor
     struct vkd3d_shader_descriptor_binding binding;
     unsigned int i;
 
-    descriptor_type = VKD3D_SHADER_DESCRIPTOR_TYPE_UNKNOWN;
     if (reg->type == VKD3DSPR_CONSTBUFFER)
         descriptor_type = VKD3D_SHADER_DESCRIPTOR_TYPE_CBV;
     else if (reg->type == VKD3DSPR_RESOURCE)
@@ -2378,6 +2377,7 @@ static struct vkd3d_shader_descriptor_binding vkd3d_dxbc_compiler_get_descriptor
         FIXME("Unhandled register type %#x.\n", reg->type);
         vkd3d_dxbc_compiler_error(compiler, VKD3D_SHADER_ERROR_SPV_INVALID_REGISTER_TYPE,
                 "Encountered invalid/unhandled register type %#x.", reg->type);
+        goto done;
     }
 
     resource_type_flag = resource_type == VKD3D_SHADER_RESOURCE_BUFFER
@@ -2406,7 +2406,7 @@ static struct vkd3d_shader_descriptor_binding vkd3d_dxbc_compiler_get_descriptor
                     "Could not find descriptor binding for UAV counter %u, space %u.", reg_idx, register_space);
         }
     }
-    else if (descriptor_type != VKD3D_SHADER_DESCRIPTOR_TYPE_UNKNOWN)
+    else
     {
         for (i = 0; i < shader_interface->binding_count; ++i)
         {
@@ -2432,6 +2432,7 @@ static struct vkd3d_shader_descriptor_binding vkd3d_dxbc_compiler_get_descriptor
         }
     }
 
+done:
     binding.set = 0;
     binding.binding = compiler->binding_idx++;
     return binding;




More information about the wine-cvs mailing list