3105e82b2e
When gl_Position is defined by SPIR-V, but neither used nor initialized, it appeared twice in the MSL output, as gl_Position and glPosition_1. The existing tests for whether an output is active check only that it is used by an op, or initialized. Adding the implicit gl_Position also marked the existing gl_Position as active, duplicating the output variable. Fix is that when checking for the need to add an implicit gl_Position output, also check if the var is already defined in the shader, and just needs to be marked as active. Add test shader.
19 lines
269 B
GLSL
19 lines
269 B
GLSL
#include <metal_stdlib>
|
|
#include <simd/simd.h>
|
|
|
|
using namespace metal;
|
|
|
|
struct main0_out
|
|
{
|
|
float4 gl_Position [[position]];
|
|
float gl_PointSize [[point_size]];
|
|
};
|
|
|
|
vertex main0_out main0()
|
|
{
|
|
main0_out out = {};
|
|
out.gl_PointSize = 1.0;
|
|
return out;
|
|
}
|
|
|