diff --git a/libs/vkd3d-shader/hlsl_sm4.c b/libs/vkd3d-shader/hlsl_sm4.c index 3ce6fc5e60d6ff5a8adb7dc344bbce2e93588670..b6d5e92cb70687d4832b29848cab231041ee4296 100644 --- a/libs/vkd3d-shader/hlsl_sm4.c +++ b/libs/vkd3d-shader/hlsl_sm4.c @@ -1664,6 +1664,10 @@ static void write_sm4_expr(struct hlsl_ctx *ctx, } break; + case HLSL_OP1_REINTERPRET: + write_sm4_unary_op(buffer, VKD3D_SM4_OP_MOV, &expr->node, arg1, 0); + break; + case HLSL_OP1_ROUND: assert(type_is_float(dst_type)); write_sm4_unary_op(buffer, VKD3D_SM4_OP_ROUND_NE, &expr->node, arg1, 0); diff --git a/tests/asuint.shader_test b/tests/asuint.shader_test index 77385515c0fb084fd3d76ddc3a8c2cffe1fee2a6..a08beaf38e5c9c33216429c3545c63a6d817ba11 100644 --- a/tests/asuint.shader_test +++ b/tests/asuint.shader_test @@ -16,7 +16,7 @@ float4 main(uniform float f, uniform int i, uniform uint u, uniform half h) : sv [test] uniform 0 uint4 123 0xc0000000 456 0x7fd69345 -todo draw quad +draw quad probe (320,240) rgba (123.0, 3221225472.0, 456.0, 2144768896.0) @@ -31,7 +31,7 @@ float4 main(uniform float2x2 m, uniform float4 v) : sv_target uniform 0 uint4 11 12 0 0 uniform 4 uint4 13 14 0 0 uniform 8 uint4 20 21 22 23 -todo draw quad +draw quad probe (320,240) rgba (13.0, 21.0, 0.0, 0.0)