I am trying to sample a texture inside a Metal vertex shader.
Receiving the following error: "AGX: AGX: Texture read/write assertion failed: depth > 0"
Setup for rendering:
` MTLSamplerDescriptor *samplerDesc = [MTLSamplerDescriptor new];
samplerDesc.normalizedCoordinates = YES;
samplerDesc.rAddressMode = MTLSamplerAddressModeClampToEdge;
samplerDesc.sAddressMode = MTLSamplerAddressModeClampToEdge;
samplerDesc.tAddressMode = MTLSamplerAddressModeClampToEdge;
samplerDesc.minFilter = MTLSamplerMinMagFilterNearest;
samplerDesc.magFilter = MTLSamplerMinMagFilterNearest;
samplerDesc.mipFilter = MTLSamplerMipFilterNotMipmapped;
id ss = [device newSamplerStateWithDescriptor:samplerDesc];
[ commandEncoder setVertexSamplerState : ss atIndex : 0 ];
[ commandEncoder setVertexTexture : l_Texture_Height_Field
atIndex : CTI_Gradient ];
Vertex` Shader:
`vertex PVertex vertexShader_mkali ( uint vertexID [ [ vertex_id ] ],
constant Vertex3D *vertexArray [ [ buffer ( CVI_Vertices ) ] ],
constant vector_uint2 *viewportSizePointer [ [ buffer ( CVI_ViewportSize ) ] ],
constant shader_Data_mkali &vertex_Shader_Data [ [ buffer ( CVI_ShaderData ) ] ],
texture2d < float > heightTexture [ [ texture ( CTI_Gradient ) ] ],
sampler smp [ [ sampler ( 0 ) ] ]
)
{
PVertex outVertex;
float2 l_Point = vertexArray [ vertexID ].position.xy;
l_Point.x = mkali_noxstep( -1.0, 1.0, l_Point.x );
l_Point.y = mkali_noxstep( -1.0, 1.0, l_Point.y );
float4 l_Texture_Heightfield = heightTexture.sample ( smp, l_Point );
outVertex.position = float4 ( vertexArray [ vertexID ].position + float3 ( l_Texture_Heightfield.x, 0.0, 0.0 ), 1.0 );
outVertex.color = float4 ( 1.0, 0.5, 0.0, 1.0 );
outVertex.size = 30;
return outVertex;
}`
Anybody have any ideas?
thank you, Nikki
1
0
578