diff --git a/libs/vkd3d-shader/hlsl.y b/libs/vkd3d-shader/hlsl.y index 05657d27b..24c7ae6b0 100644 --- a/libs/vkd3d-shader/hlsl.y +++ b/libs/vkd3d-shader/hlsl.y @@ -4932,7 +4932,7 @@ static bool intrinsic_GetRenderTargetSampleCount(struct hlsl_ctx *ctx, "GetRenderTargetSampleCount() can only be used from a pixel shader using version 4.1 or higher."); hlsl_block_add_expr(ctx, params->instrs, HLSL_OP0_RASTERIZER_SAMPLE_COUNT, - operands, hlsl_get_scalar_type(ctx, HLSL_TYPE_UINT), loc); + operands, hlsl_get_vector_type(ctx, HLSL_TYPE_UINT, 1), loc); return true; } diff --git a/tests/hlsl/rt-get-sample-info.shader_test b/tests/hlsl/rt-get-sample-info.shader_test index 9bf824ca7..737c9e7af 100644 --- a/tests/hlsl/rt-get-sample-info.shader_test +++ b/tests/hlsl/rt-get-sample-info.shader_test @@ -18,7 +18,7 @@ probe (0, 0) rgba (4.0, 0.0, 0.0, 0.0) % Curiously GetRenderTargetSampleCount() returns a uint1, not a uint. % In sm6 it is altered to return a uint. -[pixel shader fail(sm>=6) todo] +[pixel shader fail(sm>=6)] float4 main() : sv_target { return GetRenderTargetSampleCount()[0];