Zebediah Figura : vkd3d-shader/hlsl: Handle samplers in write_sm1_uniform().

Alexandre Julliard julliard at winehq.org
Wed Nov 10 15:31:58 CST 2021


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

Author: Zebediah Figura <zfigura at codeweavers.com>
Date:   Mon Nov  8 21:39:29 2021 -0600

vkd3d-shader/hlsl: Handle samplers in write_sm1_uniform().

Signed-off-by: Zebediah Figura <zfigura at codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
Signed-off-by: Giovanni Mascellani <gmascellani at codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 libs/vkd3d-shader/hlsl_sm1.c | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/libs/vkd3d-shader/hlsl_sm1.c b/libs/vkd3d-shader/hlsl_sm1.c
index c3d27ee..875f521 100644
--- a/libs/vkd3d-shader/hlsl_sm1.c
+++ b/libs/vkd3d-shader/hlsl_sm1.c
@@ -352,8 +352,18 @@ static void write_sm1_uniforms(struct hlsl_ctx *ctx, struct vkd3d_bytecode_buffe
         if (!var->semantic.name && var->reg.allocated)
         {
             put_u32(buffer, 0); /* name */
-            put_u32(buffer, vkd3d_make_u32(D3DXRS_FLOAT4, var->reg.id));
-            put_u32(buffer, var->data_type->reg_size / 4);
+            if (var->data_type->type == HLSL_CLASS_OBJECT
+                    && (var->data_type->base_type == HLSL_TYPE_SAMPLER
+                    || var->data_type->base_type == HLSL_TYPE_TEXTURE))
+            {
+                put_u32(buffer, vkd3d_make_u32(D3DXRS_SAMPLER, var->reg.id));
+                put_u32(buffer, 1);
+            }
+            else
+            {
+                put_u32(buffer, vkd3d_make_u32(D3DXRS_FLOAT4, var->reg.id));
+                put_u32(buffer, var->data_type->reg_size / 4);
+            }
             put_u32(buffer, 0); /* type */
             put_u32(buffer, 0); /* FIXME: default value */
         }




More information about the wine-cvs mailing list