Hi, I am getting strange problem with the full-screen quad rendering with GL3Plus RS. The RenderDoc is showing me that input vertex buffer has all vertices (0, 0, 0). I check the full-screen triangle and full-screen quad as well. Both meshes have same problem according to the RenderDoc.

However, if I check the content of the buffer, the values seems to be correct there:

Here is my vertex shader for the quad in HLSL:
Code: Select all
// vertex shader input attributes
struct vs_in
{
float4 position : POSITION;
};
// vertex shader output attributes
struct vs_out
{
float4 position : SV_POSITION; // required output of VS
float2 uv : TEXCOORD0;
};
vs_out main(vs_in input)
{
vs_out output = (vs_out)0; // zero the memory first
output.position = float4(input.position.xy, 0.0, 1.0);
// convert range <-1, 1> to <0, 1>
output.uv = (input.position.xy + float2(1, 1)) * 0.5 * float2(1, -1); // flip y-axis
return output;
}
Here is the vertex shader for the quad in GLSL (automatically converted from HLSL through spir-v:
Code: Select all
#version 450
layout(std140) uniform;
layout(location = 0) in vec4 input_position;
layout(location = 0) out vec2 _entryPointOutput_uv;
void main()
{
gl_Position = vec4(input_position.xy, 0.0, 1.0);
_entryPointOutput_uv = ((input_position.xy + vec2(1.0)) * 0.5) * vec2(1.0, -1.0);
}
Note1: in D3D11 render system there is no problem and the rendering looks as expected:

Note2: I am using my custom HLMS implementation where I implemented fillBuffersFor as it is called for the v1::Rectangle2D - I mostly copied the implementation from the HlmsLowLevel::fillBuffersFor (and HlmsLowLevel::executeCommand), but there is nothing related to binding of the vertex/index buffers of the renderable and as my code is working for D3D11, I suppose it should be somehow correct).
The OpenGL doesn't report me any errors, there is no special errors logged aldo from ogre in log file. What could cause such problems in OpenGL?
