1#version 460 core
2#extension GL_ARB_separate_shader_objects : enable
3#extension GL_ARB_shading_language_420pack : enable
4
5// includes
6
7#include "common/bloom_common.h"
8
9// sets
10
11#include "render/shaders/common/render_post_process_layout_common.h"
12
13
14layout(set = 1, binding = 0) uniform texture2D uTex;
15layout (input_attachment_index = 0, set = 1, binding = 1) uniform subpassInput uInputColor;
16layout(set = 1, binding = 2) uniform sampler uSampler;
17
18// in / out
19
20layout (location = 0) in vec2 inUv;
21
22layout (location = 0) out vec4 outColor;
23
24///////////////////////////////////////////////////////////////////////////////
25// bloom upscale
26
27void main()
28{
29    const vec2 uv = inUv;
30    vec3 color = bloomUpscale(uv, uPc.viewportSizeInvSize.zw, uTex, uSampler);
31    const vec3 baseColor = subpassLoad(uInputColor).rgb;
32    color = min((color + baseColor), CORE_BLOOM_CLAMP_MAX_VALUE);
33
34    outColor = vec4(color, 1.0);
35}
36
37