The open source OpenXR runtime
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

c/shaders: Tidy and codestyle

+145 -128
+2
src/xrt/compositor/shaders/clear.comp
··· 4 4 5 5 #version 460 6 6 7 + 7 8 layout(local_size_x = 8, local_size_y = 8, local_size_z = 1) in; 8 9 9 10 layout(set = 0, binding = 2) uniform writeonly restrict image2D target; ··· 14 15 vec4 post_transform[2]; 15 16 mat4 transform[2]; 16 17 } data; 18 + 17 19 18 20 void main() 19 21 {
+1
src/xrt/compositor/shaders/distortion.comp
··· 7 7 8 8 #include "srgb.inc.glsl" 9 9 10 + 10 11 layout(local_size_x = 8, local_size_y = 8, local_size_z = 1) in; 11 12 12 13 layout(set = 0, binding = 0) uniform sampler2D source[2];
+1
src/xrt/compositor/shaders/distortion_timewarp.comp
··· 7 7 8 8 #include "srgb.inc.glsl" 9 9 10 + 10 11 layout(local_size_x = 8, local_size_y = 8, local_size_z = 1) in; 11 12 12 13 layout(set = 0, binding = 0) uniform sampler2D source[2];
+24 -21
src/xrt/compositor/shaders/equirect1.frag
··· 4 4 5 5 #version 460 6 6 7 - layout (location = 0) in vec2 uv; 8 7 9 - layout (set = 0, binding = 0, std140) uniform Transformation { 10 - mat4 mvp; 11 - ivec2 offset; 12 - ivec2 extent; 13 - bool flip_y; 8 + layout (set = 0, binding = 0, std140) uniform Transformation 9 + { 10 + mat4 mvp; 11 + ivec2 offset; 12 + ivec2 extent; 13 + bool flip_y; 14 14 } ubo; 15 15 16 16 layout (set = 0, binding = 1) uniform sampler2D image; 17 17 18 - layout (set = 1, binding = 0, std140) uniform Equirect { 19 - vec2 scale; 20 - vec2 bias; 21 - float radius; 18 + layout (set = 1, binding = 0, std140) uniform Equirect 19 + { 20 + vec2 scale; 21 + vec2 bias; 22 + float radius; 22 23 } equirect; 23 24 25 + layout (location = 0) in vec2 uv; 24 26 layout (location = 0) out vec4 out_color; 25 27 26 28 const float PI = 3.1416; 29 + 27 30 28 31 void main () 29 32 { 30 - vec2 uv_sub = vec2(ubo.offset) + uv * vec2(ubo.extent); 31 - uv_sub /= textureSize(image, 0); 33 + vec2 uv_sub = vec2(ubo.offset) + uv * vec2(ubo.extent); 34 + uv_sub /= textureSize(image, 0); 32 35 33 - vec2 frag_coord = vec2(uv_sub) * 2 - 1; 36 + vec2 frag_coord = vec2(uv_sub) * 2 - 1; 34 37 35 - vec4 view_dir = normalize(ubo.mvp * vec4(frag_coord.x, -frag_coord.y, 1, 1)); 38 + vec4 view_dir = normalize(ubo.mvp * vec4(frag_coord.x, -frag_coord.y, 1, 1)); 36 39 37 - float lat = atan(view_dir.x, -view_dir.z) / (2 * PI); 38 - float lon = acos(view_dir.y) / PI; 40 + float lat = atan(view_dir.x, -view_dir.z) / (2 * PI); 41 + float lon = acos(view_dir.y) / PI; 39 42 40 - lat *= equirect.scale.x; 41 - lon *= equirect.scale.y; 43 + lat *= equirect.scale.x; 44 + lon *= equirect.scale.y; 42 45 43 - lat += equirect.bias.x; 44 - lon += equirect.bias.y; 46 + lat += equirect.bias.x; 47 + lon += equirect.bias.y; 45 48 46 - out_color = texture(image, vec2(lat, lon)); 49 + out_color = texture(image, vec2(lat, lon)); 47 50 } 48 51
+19 -20
src/xrt/compositor/shaders/equirect1.vert
··· 5 5 #version 460 6 6 7 7 layout (binding = 0, std140) uniform Transformation { 8 - mat4 mvp; 9 - ivec2 offset; 10 - ivec2 extent; 11 - bool flip_y; 8 + mat4 mvp; 9 + ivec2 offset; 10 + ivec2 extent; 11 + bool flip_y; 12 12 } transformation; 13 13 14 - layout (location = 0) in vec3 position; 15 - layout (location = 1) in vec2 uv; 16 - 14 + layout (location = 0) in vec3 position; 15 + layout (location = 1) in vec2 uv; 17 16 layout (location = 0) out vec2 out_uv; 18 17 19 - 20 18 out gl_PerVertex { 21 - vec4 gl_Position; 19 + vec4 gl_Position; 22 20 }; 23 21 24 22 const mat4 mvp = mat4( 25 - 2, 0, 0, 0, 26 - 0, 2, 0, 0, 27 - 0, 0, 1, 0, 28 - 0, 0, 0, 1 23 + 2, 0, 0, 0, 24 + 0, 2, 0, 0, 25 + 0, 0, 1, 0, 26 + 0, 0, 0, 1 29 27 ); 30 28 31 - void main() { 32 - gl_Position = mvp * vec4 (position, 1.0f); 33 - gl_Position.y = -gl_Position.y; 34 - out_uv = uv; 29 + void main() 30 + { 31 + gl_Position = mvp * vec4 (position, 1.0f); 32 + gl_Position.y = -gl_Position.y; 33 + out_uv = uv; 35 34 36 - if (transformation.flip_y) { 37 - out_uv.y = 1.0 - out_uv.y; 38 - } 35 + if (transformation.flip_y) { 36 + out_uv.y = 1.0 - out_uv.y; 37 + } 39 38 }
+41 -38
src/xrt/compositor/shaders/equirect2.frag
··· 4 4 5 5 #version 460 6 6 7 - layout (location = 0) in vec2 uv; 8 7 9 8 layout (set = 0, binding = 0, std140) uniform Transformation { 10 - mat4 mvp; 11 - ivec2 offset; 12 - ivec2 extent; 13 - bool flip_y; 9 + mat4 mvp; 10 + ivec2 offset; 11 + ivec2 extent; 12 + bool flip_y; 14 13 } ubo; 15 14 16 15 layout (set = 0, binding = 1) uniform sampler2D image; 17 16 18 17 layout (set = 1, binding = 0, std140) uniform Equirect { 19 - float radius; 20 - float central_horizontal_angle; 21 - float upper_vertical_angle; 22 - float lower_vertical_angle; 18 + float radius; 19 + float central_horizontal_angle; 20 + float upper_vertical_angle; 21 + float lower_vertical_angle; 23 22 } equirect; 24 23 24 + layout (location = 0) in vec2 uv; 25 25 layout (location = 0) out vec4 out_color; 26 26 27 27 const float PI = 3.1416; 28 28 29 - // #define DEBUG 1 30 29 31 30 void main () 32 31 { 33 - vec2 uv_sub = vec2(ubo.offset) + uv * vec2(ubo.extent); 34 - uv_sub /= textureSize(image, 0); 32 + vec2 uv_sub = vec2(ubo.offset) + uv * vec2(ubo.extent); 33 + uv_sub /= textureSize(image, 0); 35 34 36 - vec2 frag_coord = vec2(uv_sub) * 2 - 1; 35 + vec2 frag_coord = vec2(uv_sub) * 2 - 1; 37 36 38 - vec4 view_dir = normalize(ubo.mvp * vec4(frag_coord.x, -frag_coord.y, 1, 1)); 37 + vec4 view_dir = normalize(ubo.mvp * vec4(frag_coord.x, -frag_coord.y, 1, 1)); 39 38 40 - float lat = atan(view_dir.x, -view_dir.z) / (2 * PI); 41 - float lon = acos(view_dir.y) / PI; 39 + float lat = atan(view_dir.x, -view_dir.z) / (2 * PI); 40 + float lon = acos(view_dir.y) / PI; 42 41 42 + #undef DEBUG 43 43 #ifdef DEBUG 44 - int lat_int = int(lat * 1000.0); 45 - int lon_int = int(lon * 1000.0); 44 + int lat_int = int(lat * 1000.0); 45 + int lon_int = int(lon * 1000.0); 46 46 47 - if (lat < 0.001 && lat > -0.001) 48 - out_color = vec4(1, 0, 0, 1); 49 - else if (lat_int % 50 == 0) 50 - out_color = vec4(1, 1, 1, 1); 51 - else if (lon_int % 50 == 0) 52 - out_color = vec4(1, 1, 1, 1); 53 - else 54 - out_color = vec4(lat, lon, 0, 1); 47 + if (lat < 0.001 && lat > -0.001) { 48 + out_color = vec4(1, 0, 0, 1); 49 + } else if (lat_int % 50 == 0) { 50 + out_color = vec4(1, 1, 1, 1); 51 + } else if (lon_int % 50 == 0) { 52 + out_color = vec4(1, 1, 1, 1); 53 + } else { 54 + out_color = vec4(lat, lon, 0, 1); 55 + } 55 56 #endif 56 57 57 - float chan = equirect.central_horizontal_angle / (PI * 2.0f); 58 + float chan = equirect.central_horizontal_angle / (PI * 2.0f); 58 59 59 - // Normalize [0, 2π] to [0, 1] 60 - float uhan = chan / 2.0f; 61 - float lhan = -chan / 2.0f; 60 + // Normalize [0, 2π] to [0, 1] 61 + float uhan = chan / 2.0f; 62 + float lhan = -chan / 2.0f; 63 + 64 + // Normalize [-π/2, π/2] to [0, 1] 65 + float uvan = equirect.upper_vertical_angle / PI + 0.5f; 66 + float lvan = equirect.lower_vertical_angle / PI + 0.5f; 62 67 63 - // Normalize [-π/2, π/2] to [0, 1] 64 - float uvan = equirect.upper_vertical_angle / PI + 0.5f; 65 - float lvan = equirect.lower_vertical_angle / PI + 0.5f; 68 + if (lon < uvan && lon > lvan && lat < uhan && lat > lhan) { 66 69 67 - if (lon < uvan && lon > lvan && lat < uhan && lat > lhan) 68 70 #ifdef DEBUG 69 - out_color += texture(image, vec2(lat, lon)) / 2.0; 71 + out_color += texture(image, vec2(lat, lon)) / 2.0; 70 72 #else 71 - out_color = texture(image, vec2(lat, lon)); 72 - else 73 - out_color = vec4(0, 0, 0, 0); 73 + out_color = texture(image, vec2(lat, lon)); 74 + } else { 75 + out_color = vec4(0, 0, 0, 0); 76 + } 74 77 #endif 75 78 } 76 79
+23 -21
src/xrt/compositor/shaders/equirect2.vert
··· 4 4 5 5 #version 460 6 6 7 - layout (binding = 0, std140) uniform Transformation { 8 - mat4 mvp; 9 - ivec2 offset; 10 - ivec2 extent; 11 - bool flip_y; 12 - } transformation; 13 7 14 - layout (location = 0) in vec3 position; 15 - layout (location = 1) in vec2 uv; 8 + layout (binding = 0, std140) uniform Transformation 9 + { 10 + mat4 mvp; 11 + ivec2 offset; 12 + ivec2 extent; 13 + bool flip_y; 14 + } transformation; 16 15 16 + layout (location = 0) in vec3 position; 17 + layout (location = 1) in vec2 uv; 17 18 layout (location = 0) out vec2 out_uv; 18 19 19 - 20 - out gl_PerVertex { 21 - vec4 gl_Position; 20 + out gl_PerVertex 21 + { 22 + vec4 gl_Position; 22 23 }; 23 24 24 25 const mat4 mvp = mat4( 25 - 2, 0, 0, 0, 26 - 0, 2, 0, 0, 27 - 0, 0, 1, 0, 28 - 0, 0, 0, 1 26 + 2, 0, 0, 0, 27 + 0, 2, 0, 0, 28 + 0, 0, 1, 0, 29 + 0, 0, 0, 1 29 30 ); 30 31 32 + 31 33 void main() { 32 - gl_Position = mvp * vec4 (position, 1.0f); 33 - gl_Position.y = -gl_Position.y; 34 - out_uv = uv; 34 + gl_Position = mvp * vec4 (position, 1.0f); 35 + gl_Position.y = -gl_Position.y; 36 + out_uv = uv; 35 37 36 - if (transformation.flip_y) { 37 - out_uv.y = 1.0 - out_uv.y; 38 - } 38 + if (transformation.flip_y) { 39 + out_uv.y = 1.0 - out_uv.y; 40 + } 39 41 }
+12 -10
src/xrt/compositor/shaders/layer.frag
··· 4 4 5 5 #version 460 6 6 7 - layout (location = 0) in vec2 uv; 8 7 9 - layout (binding = 0, std140) uniform Transformation { 10 - mat4 mvp; 11 - ivec2 offset; 12 - ivec2 extent; 13 - bool flip_y; 8 + layout (binding = 0, std140) uniform Transformation 9 + { 10 + mat4 mvp; 11 + ivec2 offset; 12 + ivec2 extent; 13 + bool flip_y; 14 14 } ubo; 15 + 15 16 layout (binding = 1) uniform sampler2D image; 16 17 18 + layout (location = 0) in vec2 uv; 17 19 layout (location = 0) out vec4 out_color; 18 20 21 + 19 22 void main () 20 23 { 21 - vec2 uv_sub = vec2(ubo.offset) + uv * vec2(ubo.extent); 22 - uv_sub /= textureSize(image, 0); 23 - out_color = texture(image, uv_sub); 24 + vec2 uv_sub = vec2(ubo.offset) + uv * vec2(ubo.extent); 25 + uv_sub /= textureSize(image, 0); 26 + out_color = texture(image, uv_sub); 24 27 } 25 -
+19 -17
src/xrt/compositor/shaders/layer.vert
··· 4 4 5 5 #version 460 6 6 7 - layout (binding = 0, std140) uniform Transformation { 8 - mat4 mvp; 9 - ivec2 offset; 10 - ivec2 extent; 11 - bool flip_y; 12 - } transformation; 13 7 14 - layout (location = 0) in vec3 position; 15 - layout (location = 1) in vec2 uv; 8 + layout (binding = 0, std140) uniform Transformation 9 + { 10 + mat4 mvp; 11 + ivec2 offset; 12 + ivec2 extent; 13 + bool flip_y; 14 + } transformation; 16 15 16 + layout (location = 0) in vec3 position; 17 + layout (location = 1) in vec2 uv; 17 18 layout (location = 0) out vec2 out_uv; 18 19 19 - 20 - out gl_PerVertex { 21 - vec4 gl_Position; 20 + out gl_PerVertex 21 + { 22 + vec4 gl_Position; 22 23 }; 23 24 25 + 24 26 void main() { 25 - gl_Position = transformation.mvp * vec4 (position, 1.0f); 26 - gl_Position.y = -gl_Position.y; 27 - out_uv = uv; 27 + gl_Position = transformation.mvp * vec4 (position, 1.0f); 28 + gl_Position.y = -gl_Position.y; 29 + out_uv = uv; 28 30 29 - if (transformation.flip_y) { 30 - out_uv.y = 1.0 - out_uv.y; 31 - } 31 + if (transformation.flip_y) { 32 + out_uv.y = 1.0 - out_uv.y; 33 + } 32 34 }
+2 -1
src/xrt/compositor/shaders/mesh.frag
··· 9 9 10 10 #version 450 11 11 12 + 12 13 layout (binding = 0) uniform sampler2D tex_sampler; 13 14 14 15 layout (location = 0) in vec2 in_ruv; ··· 23 24 float g = texture(tex_sampler, in_guv).y; 24 25 float b = texture(tex_sampler, in_buv).z; 25 26 26 - out_color = vec4(r, g, b, 1.0); 27 + out_color = vec4(r, g, b, 1.0); 27 28 }
+1
src/xrt/compositor/shaders/mesh.vert
··· 6 6 7 7 #version 450 8 8 9 + 9 10 layout (binding = 1, std140) uniform ubo 10 11 { 11 12 vec4 vertex_rot;