Ryujinx/src/Ryujinx.Graphics.Metal/Shaders/DepthStencilClear.metal

45 lines
883 B
Metal
Raw Normal View History

#include <metal_stdlib>
using namespace metal;
struct VertexOut {
float4 position [[position]];
};
struct FragmentOut {
float depth [[depth(any)]];
2024-05-23 00:26:54 +00:00
uint stencil [[stencil]];
};
struct ClearDepth {
float data;
};
struct ConstantBuffers {
constant ClearDepth* clear_depth;
};
2024-05-24 12:16:42 +00:00
vertex VertexOut vertexMain(ushort vid [[vertex_id]]) {
int low = vid & 1;
int high = vid >> 1;
VertexOut out;
out.position.x = (float(low) - 0.5f) * 2.0f;
out.position.y = (float(high) - 0.5f) * 2.0f;
out.position.z = 0.0f;
out.position.w = 1.0f;
return out;
}
2024-05-23 00:26:54 +00:00
fragment FragmentOut fragmentMain(VertexOut in [[stage_in]],
constant ConstantBuffers &constant_buffers [[buffer(20)]]) {
2024-05-23 00:26:54 +00:00
FragmentOut out;
out.depth = constant_buffers.clear_depth->data;
2024-05-23 00:26:54 +00:00
// out.stencil = stencil_clear;
return out;
}