首页 > 解决方案 > 不使用基于推送常量的顶点属性

问题描述

我有一个 GLSL 顶点着色器,其中一个属性仅在设置推送常量时使用:

layout(location = 0) in ivec2 a_pos;
layout(location = 1) in ivec2 a_nrm;
layout(location = 2) in float a_Height;

void main()
{
<...>
float Offset = ( u_enabling_flag > 0.0 ) ? a_Height : 0.0;
< some calculation involving Offset >

我收到以下验证错误:

vkDebug:验证:0:验证错误:[UNASSIGNED-CoreValidation-Shader-InputNotProduced] 对象 0:句柄 = 0x3a000000003a,类型 = VK_OBJECT_TYPE_SHADER_MODULE;| 消息 ID = 0x23e43bb7 | 顶点着色器使用位置 2 的输入但未提供

图形输出看起来不错,但是否有可能摆脱错误?

问候。

标签: vulkan

解决方案


图形输出看起来不错,但是否有可能摆脱错误?

“顶点着色器在位置 2 使用输入但未提供”

从着色器中移除位置 2 的输入,或在该位置附加缓冲区绑定。


推荐阅读