错误:无效的 vs_2_0 输出语义

Posted

技术标签:

【中文标题】错误:无效的 vs_2_0 输出语义【英文标题】:Error: Invalid vs_2_0 output semantic 【发布时间】:2017-07-31 18:19:13 【问题描述】:

它说:Invalid vs_2_0 输出语义SV_Target

因此,出于某种原因,Visual Studio 2017 正在编译我的像素着色器,就好像它是一个顶点着色器一样。但在属性面板中,我将其指定为 ps_5_0。有什么我遗漏的东西需要说明吗?

顶点着色器:-

cbuffer ConstantBuffer : register(b0)

    matrix World;
    matrix View;
    matrix Projection;


struct Input 
    float3 Pos  : POSITION;
    float4 Color: COLOR;
;

struct VS_OUTPUT

    float4 Pos : SV_POSITION;
    float4 Color : COLOR0;
;

VS_OUTPUT main(Input input)

    VS_OUTPUT output = (VS_OUTPUT)0;

    output.Pos = mul(input.Pos, World);
    output.Pos = mul(output.Pos, View);
    output.Pos = mul(output.Pos, Projection);

    output.Color = input.Color;
    return output;

像素着色器:-

struct VS_OUTPUT

    float4 Pos : SV_POSITION;
    float4 Color : COLOR0;
;

float4 main(VS_OUTPUT input) : SV_Target

    return input.Color;

here 是我的像素着色器设置。 我希望有人可以帮助我。

【问题讨论】:

您是否在属性面板中检查了目标和平台,VS2017 的行为与过去版本相比发生了重大变化,并且面板不再以当前 IDE 设置打开并跟踪他自己的设置。 【参考方案1】:

打开 .hlsl 文件的属性页面,并在 HLSL Compiler/General/Shader Type 中选择 Pixel Shader

【讨论】:

【参考方案2】:

并且不要忘记设置此属性以进行调试和发布。

【讨论】:

【参考方案3】:

您可以通过修改shader 属性来解决此问题

properties -> HLSL Compiler -> General -> Shader Type -> Pixel Shader (/ps)

Configuration properties -> General -> Excluded from Build = Yes.

【讨论】:

以上是关于错误:无效的 vs_2_0 输出语义的主要内容,如果未能解决你的问题,请参考以下文章

归档基于 Xcode 错误的 Unity 应用程序:无效的位码版本(生产者:'802.0.42.0_0' 读者:'800.0.42.1_0')

SQL 无效参数错误

使用 GLUT_3_2_CORE_PROFILE 时出现 OpenGL 错误 1282(无效操作)

Eclipse CDT 显示语义错误,但编译正常

来自 PREfast 的指针无效访问(读取 0*1 的 4 个字节)错误

mongodb 3.4.2 InvalidIndexSpecificationOption 错误:字段“唯一”对于 _id 索引规范无效