From 5b837157bde2115cf4781c5353f598eb6f0f7109 Mon Sep 17 00:00:00 2001 From: Liam Date: Thu, 8 Dec 2022 16:52:29 -0500 Subject: video_core: Integrate SMAA Co-authored-by: goldenx86 Co-authored-by: BreadFish64 --- .../host_shaders/smaa_neighborhood_blending.vert | 41 ++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 src/video_core/host_shaders/smaa_neighborhood_blending.vert (limited to 'src/video_core/host_shaders/smaa_neighborhood_blending.vert') diff --git a/src/video_core/host_shaders/smaa_neighborhood_blending.vert b/src/video_core/host_shaders/smaa_neighborhood_blending.vert new file mode 100644 index 000000000..007dcdd36 --- /dev/null +++ b/src/video_core/host_shaders/smaa_neighborhood_blending.vert @@ -0,0 +1,41 @@ +// SPDX-FileCopyrightText: Copyright 2022 yuzu Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#version 460 + +#extension GL_GOOGLE_include_directive : enable + +#ifdef VULKAN +#define VERTEX_ID gl_VertexIndex +#else // ^^^ Vulkan ^^^ // vvv OpenGL vvv +#define VERTEX_ID gl_VertexID +#endif + +out gl_PerVertex { + vec4 gl_Position; +}; + +const vec2 vertices[3] = + vec2[3](vec2(-1,-1), vec2(3,-1), vec2(-1, 3)); + +layout (binding = 0) uniform sampler2D input_tex; +layout (binding = 1) uniform sampler2D blend_tex; + +layout (location = 0) out vec2 tex_coord; +layout (location = 1) out vec4 offset; + +vec4 metrics = vec4(1.0 / textureSize(input_tex, 0), textureSize(input_tex, 0)); +#define SMAA_RT_METRICS metrics +#define SMAA_GLSL_4 +#define SMAA_PRESET_ULTRA +#define SMAA_INCLUDE_VS 1 +#define SMAA_INCLUDE_PS 0 + +#include "opengl_smaa.glsl" + +void main() { + vec2 vertex = vertices[VERTEX_ID]; + gl_Position = vec4(vertex, 0.0, 1.0); + tex_coord = (vertex + 1.0) / 2.0; + SMAANeighborhoodBlendingVS(tex_coord, offset); +} -- cgit v1.2.3