22 lines
787 B
Text
22 lines
787 B
Text
#version 450
|
|
#extension GL_ARB_separate_shader_objects : enable
|
|
|
|
#define WORKGROUP_SIZE 32
|
|
layout (local_size_x = WORKGROUP_SIZE, local_size_y = WORKGROUP_SIZE, local_size_z = 1 ) in;
|
|
|
|
layout (binding = 0) uniform sampler2D ycbcrSampler;
|
|
layout (binding = 1, rgba8) uniform image2D resultImage;
|
|
layout (constant_id = 0) const float width = 1920;
|
|
layout (constant_id = 1) const float height = 1080;
|
|
const vec2 in_res = vec2(width,height);
|
|
|
|
void main()
|
|
{
|
|
vec2 uv = vec2(gl_GlobalInvocationID.xy)/in_res;
|
|
vec3 yuv = texture(ycbcrSampler,uv).xyz;
|
|
float y = yuv.y;
|
|
float u = yuv.z;// - 0.5;
|
|
float v = yuv.x;// - 0.5;
|
|
vec4 out_ = vec4(y + 1.403*v, y - 0.344*u - 0.714*v, y + 1.770*u, 1);
|
|
imageStore(resultImage, ivec2(gl_GlobalInvocationID.x, gl_GlobalInvocationID.y), out_);
|
|
}
|