Henri Verbeet : vkd3d-shader: Explicitly handle "none" modifiers in shader_sm4_read_param().

Alexandre Julliard julliard at winehq.org
Fri Feb 19 16:42:49 CST 2021


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

Author: Henri Verbeet <hverbeet at codeweavers.com>
Date:   Fri Feb 19 15:57:10 2021 +0100

vkd3d-shader: Explicitly handle "none" modifiers in shader_sm4_read_param().

These (seemingly) have no effect, it's not entirely clear why they are
generated.

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

---

 libs/vkd3d-shader/dxbc.c | 15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)

diff --git a/libs/vkd3d-shader/dxbc.c b/libs/vkd3d-shader/dxbc.c
index 5b56259..6d32b1d 100644
--- a/libs/vkd3d-shader/dxbc.c
+++ b/libs/vkd3d-shader/dxbc.c
@@ -357,6 +357,14 @@ enum vkd3d_sm4_register_type
     VKD3D_SM5_RT_DEPTHOUT_LESS_EQUAL     = 0x27,
 };
 
+enum vkd3d_sm4_register_modifier
+{
+    VKD3D_SM4_REGISTER_MODIFIER_NONE       = 0x01,
+    VKD3D_SM4_REGISTER_MODIFIER_NEGATE     = 0x41,
+    VKD3D_SM4_REGISTER_MODIFIER_ABS        = 0x81,
+    VKD3D_SM4_REGISTER_MODIFIER_ABS_NEGATE = 0xc1,
+};
+
 enum vkd3d_sm4_output_primitive_type
 {
     VKD3D_SM4_OUTPUT_PT_POINTLIST     = 0x1,
@@ -1522,20 +1530,21 @@ static bool shader_sm4_read_param(struct vkd3d_sm4_data *priv, const DWORD **ptr
 
         switch (m)
         {
-            case 0x41:
+            case VKD3D_SM4_REGISTER_MODIFIER_NEGATE:
                 *modifier = VKD3DSPSM_NEG;
                 break;
 
-            case 0x81:
+            case VKD3D_SM4_REGISTER_MODIFIER_ABS:
                 *modifier = VKD3DSPSM_ABS;
                 break;
 
-            case 0xc1:
+            case VKD3D_SM4_REGISTER_MODIFIER_ABS_NEGATE:
                 *modifier = VKD3DSPSM_ABSNEG;
                 break;
 
             default:
                 FIXME("Skipping modifier 0x%08x.\n", m);
+            case VKD3D_SM4_REGISTER_MODIFIER_NONE:
                 *modifier = VKD3DSPSM_NONE;
                 break;
         }




More information about the wine-cvs mailing list