Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
godot
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
community
godot
Commits
b5d0f2a8
Unverified
Commit
b5d0f2a8
authored
May 18, 2020
by
Rémi Verschelde
Committed by
GitHub
May 18, 2020
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #38825 from akien-mga/glsl-clang-format-fixes
GLSL: Change shader type specifier from [vertex] to #[vertex]
parents
0187cdae
c74d65ce
Hide whitespace changes
Inline
Side-by-side
Showing
34 changed files
with
102 additions
and
279 deletions
+102
-279
gles_builders.py
gles_builders.py
+5
-5
lm_blendseams.glsl
modules/lightmapper_rd/lm_blendseams.glsl
+23
-30
lm_common_inc.glsl
modules/lightmapper_rd/lm_common_inc.glsl
+0
-7
lm_compute.glsl
modules/lightmapper_rd/lm_compute.glsl
+7
-15
lm_raster.glsl
modules/lightmapper_rd/lm_raster.glsl
+5
-17
bokeh_dof.glsl
servers/rendering/rasterizer_rd/shaders/bokeh_dof.glsl
+1
-4
canvas.glsl
servers/rendering/rasterizer_rd/shaders/canvas.glsl
+2
-9
canvas_occlusion.glsl
...ers/rendering/rasterizer_rd/shaders/canvas_occlusion.glsl
+2
-7
canvas_uniforms_inc.glsl
.../rendering/rasterizer_rd/shaders/canvas_uniforms_inc.glsl
+0
-5
copy.glsl
servers/rendering/rasterizer_rd/shaders/copy.glsl
+1
-4
copy_to_fb.glsl
servers/rendering/rasterizer_rd/shaders/copy_to_fb.glsl
+6
-10
cube_to_dp.glsl
servers/rendering/rasterizer_rd/shaders/cube_to_dp.glsl
+1
-4
cubemap_downsampler.glsl
.../rendering/rasterizer_rd/shaders/cubemap_downsampler.glsl
+1
-4
cubemap_filter.glsl
servers/rendering/rasterizer_rd/shaders/cubemap_filter.glsl
+1
-5
cubemap_roughness.glsl
...rs/rendering/rasterizer_rd/shaders/cubemap_roughness.glsl
+1
-4
giprobe.glsl
servers/rendering/rasterizer_rd/shaders/giprobe.glsl
+1
-9
giprobe_debug.glsl
servers/rendering/rasterizer_rd/shaders/giprobe_debug.glsl
+2
-8
giprobe_sdf.glsl
servers/rendering/rasterizer_rd/shaders/giprobe_sdf.glsl
+3
-12
giprobe_write.glsl
servers/rendering/rasterizer_rd/shaders/giprobe_write.glsl
+3
-11
luminance_reduce.glsl
...ers/rendering/rasterizer_rd/shaders/luminance_reduce.glsl
+1
-5
roughness_limiter.glsl
...rs/rendering/rasterizer_rd/shaders/roughness_limiter.glsl
+3
-6
scene_high_end.glsl
servers/rendering/rasterizer_rd/shaders/scene_high_end.glsl
+2
-8
scene_high_end_inc.glsl
...s/rendering/rasterizer_rd/shaders/scene_high_end_inc.glsl
+0
-12
screen_space_reflection.glsl
...dering/rasterizer_rd/shaders/screen_space_reflection.glsl
+1
-7
screen_space_reflection_filter.glsl
...rasterizer_rd/shaders/screen_space_reflection_filter.glsl
+1
-7
screen_space_reflection_scale.glsl
.../rasterizer_rd/shaders/screen_space_reflection_scale.glsl
+1
-7
sky.glsl
servers/rendering/rasterizer_rd/shaders/sky.glsl
+2
-9
specular_merge.glsl
servers/rendering/rasterizer_rd/shaders/specular_merge.glsl
+2
-6
ssao.glsl
servers/rendering/rasterizer_rd/shaders/ssao.glsl
+1
-5
ssao_blur.glsl
servers/rendering/rasterizer_rd/shaders/ssao_blur.glsl
+1
-4
ssao_minify.glsl
servers/rendering/rasterizer_rd/shaders/ssao_minify.glsl
+1
-4
subsurface_scattering.glsl
...endering/rasterizer_rd/shaders/subsurface_scattering.glsl
+1
-7
tonemap.glsl
servers/rendering/rasterizer_rd/shaders/tonemap.glsl
+5
-9
rendering_device_binds.cpp
servers/rendering/rendering_device_binds.cpp
+15
-13
No files found.
gles_builders.py
View file @
b5d0f2a8
...
@@ -36,14 +36,14 @@ def include_file_in_legacygl_header(filename, header_data, depth):
...
@@ -36,14 +36,14 @@ def include_file_in_legacygl_header(filename, header_data, depth):
while
line
:
while
line
:
if
line
.
find
(
"[vertex]"
)
!=
-
1
:
if
line
.
find
(
"
#
[vertex]"
)
!=
-
1
:
header_data
.
reading
=
"vertex"
header_data
.
reading
=
"vertex"
line
=
fs
.
readline
()
line
=
fs
.
readline
()
header_data
.
line_offset
+=
1
header_data
.
line_offset
+=
1
header_data
.
vertex_offset
=
header_data
.
line_offset
header_data
.
vertex_offset
=
header_data
.
line_offset
continue
continue
if
line
.
find
(
"[fragment]"
)
!=
-
1
:
if
line
.
find
(
"
#
[fragment]"
)
!=
-
1
:
header_data
.
reading
=
"fragment"
header_data
.
reading
=
"fragment"
line
=
fs
.
readline
()
line
=
fs
.
readline
()
header_data
.
line_offset
+=
1
header_data
.
line_offset
+=
1
...
@@ -612,21 +612,21 @@ def include_file_in_rd_header(filename, header_data, depth):
...
@@ -612,21 +612,21 @@ def include_file_in_rd_header(filename, header_data, depth):
while
line
:
while
line
:
if
line
.
find
(
"[vertex]"
)
!=
-
1
:
if
line
.
find
(
"
#
[vertex]"
)
!=
-
1
:
header_data
.
reading
=
"vertex"
header_data
.
reading
=
"vertex"
line
=
fs
.
readline
()
line
=
fs
.
readline
()
header_data
.
line_offset
+=
1
header_data
.
line_offset
+=
1
header_data
.
vertex_offset
=
header_data
.
line_offset
header_data
.
vertex_offset
=
header_data
.
line_offset
continue
continue
if
line
.
find
(
"[fragment]"
)
!=
-
1
:
if
line
.
find
(
"
#
[fragment]"
)
!=
-
1
:
header_data
.
reading
=
"fragment"
header_data
.
reading
=
"fragment"
line
=
fs
.
readline
()
line
=
fs
.
readline
()
header_data
.
line_offset
+=
1
header_data
.
line_offset
+=
1
header_data
.
fragment_offset
=
header_data
.
line_offset
header_data
.
fragment_offset
=
header_data
.
line_offset
continue
continue
if
line
.
find
(
"[compute]"
)
!=
-
1
:
if
line
.
find
(
"
#
[compute]"
)
!=
-
1
:
header_data
.
reading
=
"compute"
header_data
.
reading
=
"compute"
line
=
fs
.
readline
()
line
=
fs
.
readline
()
header_data
.
line_offset
+=
1
header_data
.
line_offset
+=
1
...
...
modules/lightmapper_rd/lm_blendseams.glsl
View file @
b5d0f2a8
/* clang-format off */
#[versions]
[
versions
]
lines
=
"#define MODE_LINES"
lines
=
"#define MODE_LINES"
;
triangles
=
"#define MODE_TRIANGLES"
triangles
=
"#define MODE_TRIANGLES"
;
[
vertex
]
#
[vertex]
#version 450
#version 450
...
@@ -12,22 +11,20 @@ VERSION_DEFINES
...
@@ -12,22 +11,20 @@ VERSION_DEFINES
#include "lm_common_inc.glsl"
#include "lm_common_inc.glsl"
/* clang-format on */
layout
(
push_constant
,
binding
=
0
,
std430
)
uniform
Params
{
uint
base_index
;
layout
(
push_constant
,
binding
=
0
,
std430
)
uniform
Params
{
uint
slice
;
uint
base_index
;
vec2
uv_offset
;
uint
slice
;
bool
debug
;
vec2
uv_offset
;
float
blend
;
bool
debug
;
uint
pad
[
2
];
float
blend
;
}
uint
pad
[
2
];
params
;
}
params
;
layout
(
location
=
0
)
out
vec3
uv_interp
;
layout
(
location
=
0
)
out
vec3
uv_interp
;
void
main
()
{
void
main
()
{
#ifdef MODE_TRIANGLES
#ifdef MODE_TRIANGLES
uint
triangle_idx
=
params
.
base_index
+
gl_VertexIndex
/
3
;
uint
triangle_idx
=
params
.
base_index
+
gl_VertexIndex
/
3
;
uint
triangle_subidx
=
gl_VertexIndex
%
3
;
uint
triangle_subidx
=
gl_VertexIndex
%
3
;
...
@@ -42,7 +39,6 @@ void main() {
...
@@ -42,7 +39,6 @@ void main() {
uv_interp
=
vec3
(
uv
,
float
(
params
.
slice
));
uv_interp
=
vec3
(
uv
,
float
(
params
.
slice
));
gl_Position
=
vec4
((
uv
+
params
.
uv_offset
)
*
2
.
0
-
1
.
0
,
0
.
0001
,
1
.
0
);
gl_Position
=
vec4
((
uv
+
params
.
uv_offset
)
*
2
.
0
-
1
.
0
,
0
.
0001
,
1
.
0
);
#endif
#endif
#ifdef MODE_LINES
#ifdef MODE_LINES
...
@@ -71,12 +67,10 @@ void main() {
...
@@ -71,12 +67,10 @@ void main() {
uv_interp
=
vec3
(
src_uv
,
float
(
params
.
slice
));
uv_interp
=
vec3
(
src_uv
,
float
(
params
.
slice
));
gl_Position
=
vec4
(
dst_uv
*
2
.
0
-
1
.
0
,
0
.
0001
,
1
.
0
);
gl_Position
=
vec4
(
dst_uv
*
2
.
0
-
1
.
0
,
0
.
0001
,
1
.
0
);
;
#endif
#endif
}
}
/* clang-format off */
#[fragment]
[
fragment
]
#version 450
#version 450
...
@@ -84,16 +78,15 @@ VERSION_DEFINES
...
@@ -84,16 +78,15 @@ VERSION_DEFINES
#include "lm_common_inc.glsl"
#include "lm_common_inc.glsl"
/* clang-format on */
layout
(
push_constant
,
binding
=
0
,
std430
)
uniform
Params
{
uint
base_index
;
layout
(
push_constant
,
binding
=
0
,
std430
)
uniform
Params
{
uint
slice
;
uint
base_index
;
vec2
uv_offset
;
uint
slice
;
bool
debug
;
vec2
uv_offset
;
float
blend
;
bool
debug
;
uint
pad
[
2
];
float
blend
;
}
uint
pad
[
2
];
params
;
}
params
;
layout
(
location
=
0
)
in
vec3
uv_interp
;
layout
(
location
=
0
)
in
vec3
uv_interp
;
...
...
modules/lightmapper_rd/lm_common_inc.glsl
View file @
b5d0f2a8
...
@@ -11,7 +11,6 @@ struct Vertex {
...
@@ -11,7 +11,6 @@ struct Vertex {
layout
(
set
=
0
,
binding
=
1
,
std430
)
restrict
readonly
buffer
Vertices
{
layout
(
set
=
0
,
binding
=
1
,
std430
)
restrict
readonly
buffer
Vertices
{
Vertex
data
[];
Vertex
data
[];
}
}
vertices
;
vertices
;
struct
Triangle
{
struct
Triangle
{
...
@@ -22,7 +21,6 @@ struct Triangle {
...
@@ -22,7 +21,6 @@ struct Triangle {
layout
(
set
=
0
,
binding
=
2
,
std430
)
restrict
readonly
buffer
Triangles
{
layout
(
set
=
0
,
binding
=
2
,
std430
)
restrict
readonly
buffer
Triangles
{
Triangle
data
[];
Triangle
data
[];
}
}
triangles
;
triangles
;
struct
Box
{
struct
Box
{
...
@@ -35,13 +33,11 @@ struct Box {
...
@@ -35,13 +33,11 @@ struct Box {
layout
(
set
=
0
,
binding
=
3
,
std430
)
restrict
readonly
buffer
Boxes
{
layout
(
set
=
0
,
binding
=
3
,
std430
)
restrict
readonly
buffer
Boxes
{
Box
data
[];
Box
data
[];
}
}
boxes
;
boxes
;
layout
(
set
=
0
,
binding
=
4
,
std430
)
restrict
readonly
buffer
GridIndices
{
layout
(
set
=
0
,
binding
=
4
,
std430
)
restrict
readonly
buffer
GridIndices
{
uint
data
[];
uint
data
[];
}
}
grid_indices
;
grid_indices
;
#define LIGHT_TYPE_DIRECTIONAL 0
#define LIGHT_TYPE_DIRECTIONAL 0
...
@@ -70,7 +66,6 @@ struct Light {
...
@@ -70,7 +66,6 @@ struct Light {
layout
(
set
=
0
,
binding
=
5
,
std430
)
restrict
readonly
buffer
Lights
{
layout
(
set
=
0
,
binding
=
5
,
std430
)
restrict
readonly
buffer
Lights
{
Light
data
[];
Light
data
[];
}
}
lights
;
lights
;
struct
Seam
{
struct
Seam
{
...
@@ -81,13 +76,11 @@ struct Seam {
...
@@ -81,13 +76,11 @@ struct Seam {
layout
(
set
=
0
,
binding
=
6
,
std430
)
restrict
readonly
buffer
Seams
{
layout
(
set
=
0
,
binding
=
6
,
std430
)
restrict
readonly
buffer
Seams
{
Seam
data
[];
Seam
data
[];
}
}
seams
;
seams
;
layout
(
set
=
0
,
binding
=
7
,
std430
)
restrict
readonly
buffer
Probes
{
layout
(
set
=
0
,
binding
=
7
,
std430
)
restrict
readonly
buffer
Probes
{
vec4
data
[];
vec4
data
[];
}
}
probe_positions
;
probe_positions
;
layout
(
set
=
0
,
binding
=
8
)
uniform
utexture3D
grid
;
layout
(
set
=
0
,
binding
=
8
)
uniform
utexture3D
grid
;
...
...
modules/lightmapper_rd/lm_compute.glsl
View file @
b5d0f2a8
/* clang-format off */
#[versions]
[
versions
]
primary
=
"#define MODE_DIRECT_LIGHT"
primary
=
"#define MODE_DIRECT_LIGHT"
;
secondary
=
"#define MODE_BOUNCE_LIGHT"
secondary
=
"#define MODE_BOUNCE_LIGHT"
;
dilate
=
"#define MODE_DILATE"
dilate
=
"#define MODE_DILATE"
;
unocclude
=
"#define MODE_UNOCCLUDE"
unocclude
=
"#define MODE_UNOCCLUDE"
;
light_probes
=
"#define MODE_LIGHT_PROBES"
light_probes
=
"#define MODE_LIGHT_PROBES"
;
[
compute
]
#
[compute]
#version 450
#version 450
...
@@ -29,14 +28,11 @@ layout(local_size_x = 8, local_size_y = 8, local_size_z = 1) in;
...
@@ -29,14 +28,11 @@ layout(local_size_x = 8, local_size_y = 8, local_size_z = 1) in;
#include "lm_common_inc.glsl"
#include "lm_common_inc.glsl"
/* clang-format on */
#ifdef MODE_LIGHT_PROBES
#ifdef MODE_LIGHT_PROBES
layout
(
set
=
1
,
binding
=
0
,
std430
)
restrict
buffer
LightProbeData
{
layout
(
set
=
1
,
binding
=
0
,
std430
)
restrict
buffer
LightProbeData
{
vec4
data
[];
vec4
data
[];
}
}
light_probes
;
light_probes
;
layout
(
set
=
1
,
binding
=
1
)
uniform
texture2DArray
source_light
;
layout
(
set
=
1
,
binding
=
1
)
uniform
texture2DArray
source_light
;
...
@@ -94,7 +90,6 @@ layout(push_constant, binding = 0, std430) uniform Params {
...
@@ -94,7 +90,6 @@ layout(push_constant, binding = 0, std430) uniform Params {
mat3x4
env_transform
;
mat3x4
env_transform
;
}
}
params
;
params
;
//check it, but also return distance and barycentric coords (for uv lookup)
//check it, but also return distance and barycentric coords (for uv lookup)
...
@@ -123,7 +118,6 @@ bool trace_ray(vec3 p_from, vec3 p_to
...
@@ -123,7 +118,6 @@ bool trace_ray(vec3 p_from, vec3 p_to
out
float
r_distance
,
out
vec3
r_normal
out
float
r_distance
,
out
vec3
r_normal
#endif
#endif
)
{
)
{
/* world coords */
/* world coords */
vec3
rel
=
p_to
-
p_from
;
vec3
rel
=
p_to
-
p_from
;
...
@@ -149,7 +143,6 @@ bool trace_ray(vec3 p_from, vec3 p_to
...
@@ -149,7 +143,6 @@ bool trace_ray(vec3 p_from, vec3 p_to
while
(
all
(
greaterThanEqual
(
icell
,
ivec3
(
0
)))
&&
all
(
lessThan
(
icell
,
ivec3
(
params
.
grid_size
)))
&&
iters
<
1000
)
{
while
(
all
(
greaterThanEqual
(
icell
,
ivec3
(
0
)))
&&
all
(
lessThan
(
icell
,
ivec3
(
params
.
grid_size
)))
&&
iters
<
1000
)
{
uvec2
cell_data
=
texelFetch
(
usampler3D
(
grid
,
linear_sampler
),
icell
,
0
).
xy
;
uvec2
cell_data
=
texelFetch
(
usampler3D
(
grid
,
linear_sampler
),
icell
,
0
).
xy
;
if
(
cell_data
.
x
>
0
)
{
//triangles here
if
(
cell_data
.
x
>
0
)
{
//triangles here
bool
hit
=
false
;
bool
hit
=
false
;
#if defined(MODE_UNOCCLUDE)
#if defined(MODE_UNOCCLUDE)
bool
hit_backface
=
false
;
bool
hit_backface
=
false
;
...
@@ -211,7 +204,6 @@ bool trace_ray(vec3 p_from, vec3 p_to
...
@@ -211,7 +204,6 @@ bool trace_ray(vec3 p_from, vec3 p_to
r_triangle
=
tidx
;
r_triangle
=
tidx
;
r_barycentric
=
barycentric
;
r_barycentric
=
barycentric
;
}
}
#endif
#endif
}
}
}
}
...
...
modules/lightmapper_rd/lm_raster.glsl
View file @
b5d0f2a8
/* clang-format off */
#[vertex]
[
vertex
]
#version 450
#version 450
...
@@ -7,9 +6,7 @@ VERSION_DEFINES
...
@@ -7,9 +6,7 @@ VERSION_DEFINES
#include "lm_common_inc.glsl"
#include "lm_common_inc.glsl"
/* clang-format on */
layout
(
location
=
0
)
out
vec3
vertex_interp
;
layout
(
location
=
0
)
out
vec3
vertex_interp
;
layout
(
location
=
1
)
out
vec3
normal_interp
;
layout
(
location
=
1
)
out
vec3
normal_interp
;
layout
(
location
=
2
)
out
vec2
uv_interp
;
layout
(
location
=
2
)
out
vec2
uv_interp
;
layout
(
location
=
3
)
out
vec3
barycentric
;
layout
(
location
=
3
)
out
vec3
barycentric
;
...
@@ -26,11 +23,8 @@ layout(push_constant, binding = 0, std430) uniform Params {
...
@@ -26,11 +23,8 @@ layout(push_constant, binding = 0, std430) uniform Params {
ivec3
grid_size
;
ivec3
grid_size
;
uint
pad2
;
uint
pad2
;
}
}
params
;
params
;
/* clang-format on */
void
main
()
{
void
main
()
{
uint
triangle_idx
=
params
.
base_triangle
+
gl_VertexIndex
/
3
;
uint
triangle_idx
=
params
.
base_triangle
+
gl_VertexIndex
/
3
;
uint
triangle_subidx
=
gl_VertexIndex
%
3
;
uint
triangle_subidx
=
gl_VertexIndex
%
3
;
...
@@ -56,12 +50,9 @@ void main() {
...
@@ -56,12 +50,9 @@ void main() {
face_normal
=
-
normalize
(
cross
((
vertices
.
data
[
vertex_indices
.
x
].
position
-
vertices
.
data
[
vertex_indices
.
y
].
position
),
(
vertices
.
data
[
vertex_indices
.
x
].
position
-
vertices
.
data
[
vertex_indices
.
z
].
position
)));
face_normal
=
-
normalize
(
cross
((
vertices
.
data
[
vertex_indices
.
x
].
position
-
vertices
.
data
[
vertex_indices
.
y
].
position
),
(
vertices
.
data
[
vertex_indices
.
x
].
position
-
vertices
.
data
[
vertex_indices
.
z
].
position
)));
gl_Position
=
vec4
((
uv_interp
+
params
.
uv_offset
)
*
2
.
0
-
1
.
0
,
0
.
0001
,
1
.
0
);
gl_Position
=
vec4
((
uv_interp
+
params
.
uv_offset
)
*
2
.
0
-
1
.
0
,
0
.
0001
,
1
.
0
);
;
}
}
/* clang-format off */
#[fragment]
[
fragment
]
#version 450
#version 450
...
@@ -69,7 +60,6 @@ VERSION_DEFINES
...
@@ -69,7 +60,6 @@ VERSION_DEFINES
#include "lm_common_inc.glsl"
#include "lm_common_inc.glsl"
layout
(
push_constant
,
binding
=
0
,
std430
)
uniform
Params
{
layout
(
push_constant
,
binding
=
0
,
std430
)
uniform
Params
{
vec2
atlas_size
;
vec2
atlas_size
;
vec2
uv_offset
;
vec2
uv_offset
;
...
@@ -79,9 +69,8 @@ layout(push_constant, binding = 0, std430) uniform Params {
...
@@ -79,9 +69,8 @@ layout(push_constant, binding = 0, std430) uniform Params {
float
bias
;
float
bias
;
ivec3
grid_size
;
ivec3
grid_size
;
uint
pad2
;
uint
pad2
;
}
params
;
}
params
;
/* clang-format on */
layout
(
location
=
0
)
in
vec3
vertex_interp
;
layout
(
location
=
0
)
in
vec3
vertex_interp
;
layout
(
location
=
1
)
in
vec3
normal_interp
;
layout
(
location
=
1
)
in
vec3
normal_interp
;
...
@@ -100,7 +89,6 @@ void main() {
...
@@ -100,7 +89,6 @@ void main() {
{
{
// smooth out vertex position by interpolating its projection in the 3 normal planes (normal plane is created by vertex pos and normal)
// smooth out vertex position by interpolating its projection in the 3 normal planes (normal plane is created by vertex pos and normal)
// because we don't want to interpolate inwards, normals found pointing inwards are pushed out.
// because we don't want to interpolate inwards, normals found pointing inwards are pushed out.
vec3
pos_a
=
vertices
.
data
[
vertex_indices
.
x
].
position
;
vec3
pos_a
=
vertices
.
data
[
vertex_indices
.
x
].
position
;
vec3
pos_b
=
vertices
.
data
[
vertex_indices
.
y
].
position
;
vec3
pos_b
=
vertices
.
data
[
vertex_indices
.
y
].
position
;
vec3
pos_c
=
vertices
.
data
[
vertex_indices
.
z
].
position
;
vec3
pos_c
=
vertices
.
data
[
vertex_indices
.
z
].
position
;
...
...
servers/rendering/rasterizer_rd/shaders/bokeh_dof.glsl
View file @
b5d0f2a8
/* clang-format off */
#[compute]
[
compute
]
#version 450
#version 450
...
@@ -8,7 +7,6 @@ VERSION_DEFINES
...
@@ -8,7 +7,6 @@ VERSION_DEFINES
#define BLOCK_SIZE 8
#define BLOCK_SIZE 8
layout
(
local_size_x
=
BLOCK_SIZE
,
local_size_y
=
BLOCK_SIZE
,
local_size_z
=
1
)
in
;
layout
(
local_size_x
=
BLOCK_SIZE
,
local_size_y
=
BLOCK_SIZE
,
local_size_z
=
1
)
in
;
/* clang-format on */
#ifdef MODE_GEN_BLUR_SIZE
#ifdef MODE_GEN_BLUR_SIZE
layout
(
rgba16f
,
set
=
0
,
binding
=
0
)
uniform
restrict
image2D
color_image
;
layout
(
rgba16f
,
set
=
0
,
binding
=
0
)
uniform
restrict
image2D
color_image
;
...
@@ -51,7 +49,6 @@ layout(push_constant, binding = 1, std430) uniform Params {
...
@@ -51,7 +49,6 @@ layout(push_constant, binding = 1, std430) uniform Params {
float
jitter_seed
;
float
jitter_seed
;
uint
pad
[
2
];
uint
pad
[
2
];
}
}
params
;
params
;
//used to work around downsampling filter
//used to work around downsampling filter
...
...
servers/rendering/rasterizer_rd/shaders/canvas.glsl
View file @
b5d0f2a8
/* clang-format off */
#[vertex]
[
vertex
]
#version 450
#version 450
...
@@ -7,7 +6,6 @@ VERSION_DEFINES
...
@@ -7,7 +6,6 @@ VERSION_DEFINES
#ifdef USE_ATTRIBUTES
#ifdef USE_ATTRIBUTES
layout
(
location
=
0
)
in
vec2
vertex_attrib
;
layout
(
location
=
0
)
in
vec2
vertex_attrib
;
/* clang-format on */
layout
(
location
=
3
)
in
vec4
color_attrib
;
layout
(
location
=
3
)
in
vec4
color_attrib
;
layout
(
location
=
4
)
in
vec2
uv_attrib
;
layout
(
location
=
4
)
in
vec2
uv_attrib
;
...
@@ -87,7 +85,6 @@ void main() {
...
@@ -87,7 +85,6 @@ void main() {
#if 0
#if 0
if (draw_data.flags & FLAGS_INSTANCING_ENABLED) {
if (draw_data.flags & FLAGS_INSTANCING_ENABLED) {
uint offset = draw_data.flags & FLAGS_INSTANCING_STRIDE_MASK;
uint offset = draw_data.flags & FLAGS_INSTANCING_STRIDE_MASK;
offset *= gl_InstanceIndex;
offset *= gl_InstanceIndex;
mat4 instance_xform = mat4(
mat4 instance_xform = mat4(
...
@@ -158,7 +155,6 @@ VERTEX_SHADER_CODE
...
@@ -158,7 +155,6 @@ VERTEX_SHADER_CODE
#if 0
#if 0
if (bool(draw_data.flags & FLAGS_USE_SKELETON) && bone_weights != vec4(0.0)) { //must be a valid bone
if (bool(draw_data.flags & FLAGS_USE_SKELETON) && bone_weights != vec4(0.0)) { //must be a valid bone
//skeleton transform
//skeleton transform
ivec4 bone_indicesi = ivec4(bone_indices);
ivec4 bone_indicesi = ivec4(bone_indices);
uvec2 tex_ofs = bone_indicesi.x * 2;
uvec2 tex_ofs = bone_indicesi.x * 2;
...
@@ -209,8 +205,7 @@ VERTEX_SHADER_CODE
...
@@ -209,8 +205,7 @@ VERTEX_SHADER_CODE
#endif
#endif
}
}
/* clang-format off */
#[fragment]
[
fragment
]
#version 450
#version 450
...
@@ -219,7 +214,6 @@ VERSION_DEFINES
...
@@ -219,7 +214,6 @@ VERSION_DEFINES
#include "canvas_uniforms_inc.glsl"
#include "canvas_uniforms_inc.glsl"
layout
(
location
=
0
)
in
vec2
uv_interp
;
layout
(
location
=
0
)
in
vec2
uv_interp
;
/* clang-format on */
layout
(
location
=
1
)
in
vec4
color_interp
;
layout
(
location
=
1
)
in
vec4
color_interp
;
layout
(
location
=
2
)
in
vec2
vertex_interp
;
layout
(
location
=
2
)
in
vec2
vertex_interp
;
...
@@ -342,7 +336,6 @@ void main() {
...
@@ -342,7 +336,6 @@ void main() {
vec3
normal
;
vec3
normal
;
#if defined(NORMAL_USED)
#if defined(NORMAL_USED)
bool
normal_used
=
true
;
bool
normal_used
=
true
;
#else
#else
bool
normal_used
=
false
;
bool
normal_used
=
false
;
...
...
servers/rendering/rasterizer_rd/shaders/canvas_occlusion.glsl
View file @
b5d0f2a8
/* clang-format off */
#[vertex]
[
vertex
]
#version 450
#version 450
layout
(
location
=
0
)
in
highp
vec3
vertex
;
layout
(
location
=
0
)
in
highp
vec3
vertex
;
/* clang-format on */
layout
(
push_constant
,
binding
=
0
,
std430
)
uniform
Constants
{
layout
(
push_constant
,
binding
=
0
,
std430
)
uniform
Constants
{
mat4
projection
;
mat4
projection
;
...
@@ -12,7 +10,6 @@ layout(push_constant, binding = 0, std430) uniform Constants {
...
@@ -12,7 +10,6 @@ layout(push_constant, binding = 0, std430) uniform Constants {
vec2
direction
;
vec2
direction
;
vec2
pad
;
vec2
pad
;
}
}
constants
;
constants
;
layout
(
location
=
0
)
out
highp
float
depth
;
layout
(
location
=
0
)
out
highp
float
depth
;
...
@@ -24,13 +21,11 @@ void main() {
...
@@ -24,13 +21,11 @@ void main() {
gl_Position
=
constants
.
projection
*
vtx
;
gl_Position
=
constants
.
projection
*
vtx
;
}
}
/* clang-format off */
#[fragment]
[
fragment
]
#version 450
#version 450
layout
(
location
=
0
)
in
highp
float
depth
;
layout
(
location
=
0
)
in
highp
float
depth
;
/* clang-format on */
layout
(
location
=
0
)
out
highp
float
distance_buf
;
layout
(
location
=
0
)
out
highp
float
distance_buf
;
void
main
()
{
void
main
()
{
...
...
servers/rendering/rasterizer_rd/shaders/canvas_uniforms_inc.glsl
View file @
b5d0f2a8
...
@@ -51,7 +51,6 @@ layout(push_constant, binding = 0, std430) uniform DrawData {
...
@@ -51,7 +51,6 @@ layout(push_constant, binding = 0, std430) uniform DrawData {
vec2
color_texture_pixel_size
;
vec2
color_texture_pixel_size
;
uint
lights
[
4
];
uint
lights
[
4
];
}
}
draw_data
;
draw_data
;
// The values passed per draw primitives are cached within it
// The values passed per draw primitives are cached within it
...
@@ -83,7 +82,6 @@ layout(set = 2, binding = 0, std140) uniform CanvasData {
...
@@ -83,7 +82,6 @@ layout(set = 2, binding = 0, std140) uniform CanvasData {
float
time_pad
;
float
time_pad
;
//uint light_count;
//uint light_count;
}
}
canvas_data
;
canvas_data
;
layout
(
set
=
2
,
binding
=
1
)
uniform
textureBuffer
skeleton_buffer
;
layout
(
set
=
2
,
binding
=
1
)
uniform
textureBuffer
skeleton_buffer
;
...
@@ -92,7 +90,6 @@ layout(set = 2, binding = 2, std140) uniform SkeletonData {
...
@@ -92,7 +90,6 @@ layout(set = 2, binding = 2, std140) uniform SkeletonData {
mat4
skeleton_transform
;
//in world coordinates
mat4
skeleton_transform
;
//in world coordinates
mat4
skeleton_transform_inverse
;
mat4
skeleton_transform_inverse
;
}
}
skeleton_data
;
skeleton_data
;
#ifdef USE_LIGHTING
#ifdef USE_LIGHTING
...
@@ -126,7 +123,6 @@ struct Light {
...
@@ -126,7 +123,6 @@ struct Light {
layout
(
set
=
2
,
binding
=
3
,
std140
)
uniform
LightData
{
layout
(
set
=
2
,
binding
=
3
,
std140
)
uniform
LightData
{
Light
data
[
MAX_LIGHTS
];
Light
data
[
MAX_LIGHTS
];
}
}
light_array
;
light_array
;
layout
(
set
=
2
,
binding
=
4
)
uniform
texture2D
light_textures
[
MAX_LIGHT_TEXTURES
];
layout
(
set
=
2
,
binding
=
4
)
uniform
texture2D
light_textures
[
MAX_LIGHT_TEXTURES
];
...
@@ -139,7 +135,6 @@ layout(set = 2, binding = 6) uniform sampler shadow_sampler;
...
@@ -139,7 +135,6 @@ layout(set = 2, binding = 6) uniform sampler shadow_sampler;
layout
(
set
=
2
,
binding
=
7
,
std430
)
restrict
readonly
buffer
GlobalVariableData
{
layout
(
set
=
2
,
binding
=
7
,
std430
)
restrict
readonly
buffer
GlobalVariableData
{
vec4
data
[];
vec4
data
[];
}
}
global_variables
;
global_variables
;
/* SET3: Render Target Data */
/* SET3: Render Target Data */
...
...
servers/rendering/rasterizer_rd/shaders/copy.glsl
View file @
b5d0f2a8
/* clang-format off */
#[compute]
[
compute
]
#version 450
#version 450
VERSION_DEFINES
VERSION_DEFINES
layout
(
local_size_x
=
8
,
local_size_y
=
8
,
local_size_z
=
1
)
in
;
layout
(
local_size_x
=
8
,
local_size_y
=
8
,
local_size_z
=
1
)
in
;
/* clang-format on */
#define FLAG_HORIZONTAL (1 << 0)
#define FLAG_HORIZONTAL (1 << 0)
#define FLAG_USE_BLUR_SECTION (1 << 1)
#define FLAG_USE_BLUR_SECTION (1 << 1)
...
@@ -37,7 +35,6 @@ layout(push_constant, binding = 1, std430) uniform Params {
...
@@ -37,7 +35,6 @@ layout(push_constant, binding = 1, std430) uniform Params {
float
camera_z_near
;
float
camera_z_near
;
uint
pad2
[
2
];
uint
pad2
[
2
];
}
}
params
;
params
;
#ifdef MODE_CUBEMAP_ARRAY_TO_PANORAMA
#ifdef MODE_CUBEMAP_ARRAY_TO_PANORAMA
...
...
servers/rendering/rasterizer_rd/shaders/copy_to_fb.glsl
View file @
b5d0f2a8
/* clang-format off */
#[vertex]
[
vertex
]
#version 450
#version 450
VERSION_DEFINES
VERSION_DEFINES
layout
(
location
=
0
)
out
vec2
uv_interp
;
layout
(
location
=
0
)
out
vec2
uv_interp
;
/* clang-format on */
layout
(
push_constant
,
binding
=
1
,
std430
)
uniform
Params
{
layout
(
push_constant
,
binding
=
1
,
std430
)
uniform
Params
{
vec4
section
;
vec4
section
;
...
@@ -17,7 +15,6 @@ layout(push_constant, binding = 1, std430) uniform Params {
...
@@ -17,7 +15,6 @@ layout(push_constant, binding = 1, std430) uniform Params {
bool
force_luminance
;
bool
force_luminance
;
uint
pad
[
3
];
uint
pad
[
3
];
}
}
params
;
params
;
void
main
()
{
void
main
()
{
...
@@ -36,8 +33,7 @@ void main() {
...
@@ -36,8 +33,7 @@ void main() {
}
}
}
}
/* clang-format off */
#[fragment]
[
fragment
]
#version 450
#version 450
...
@@ -52,11 +48,10 @@ layout(push_constant, binding = 1, std430) uniform Params {
...
@@ -52,11 +48,10 @@ layout(push_constant, binding = 1, std430) uniform Params {
bool
force_luminance
;
bool
force_luminance
;
bool
alpha_to_zero
;
bool
alpha_to_zero
;
uint
pad
[
2
];
uint
pad
[
2
];
}
params
;
}
params
;
layout
(
location
=
0
)
in
vec2
uv_interp
;
layout
(
location
=
0
)
in
vec2
uv_interp
;
/* clang-format on */
layout
(
set
=
0
,
binding
=
0
)
uniform
sampler2D
source_color
;
layout
(
set
=
0
,
binding
=
0
)
uniform
sampler2D
source_color
;
...
@@ -82,8 +77,9 @@ void main() {
...
@@ -82,8 +77,9 @@ void main() {
vec2
st
=
vec2
(
atan
(
normal
.
x
,
normal
.
z
),
acos
(
normal
.
y
));
vec2
st
=
vec2
(
atan
(
normal
.
x
,
normal
.
z
),
acos
(
normal
.
y
));
if
(
st
.
x
<
0
.
0
)
if
(
st
.
x
<
0
.
0
)
{
st
.
x
+=
M_PI
*
2
.
0
;
st
.
x
+=
M_PI
*
2
.
0
;
}
uv
=
st
/
vec2
(
M_PI
*
2
.
0
,
M_PI
);
uv
=
st
/
vec2
(
M_PI
*
2
.
0
,
M_PI
);
...
...
servers/rendering/rasterizer_rd/shaders/cube_to_dp.glsl
View file @
b5d0f2a8
/* clang-format off */
#[compute]
[
compute
]
#version 450
#version 450
VERSION_DEFINES
VERSION_DEFINES
layout
(
local_size_x
=
8
,
local_size_y
=
8
,
local_size_z
=
1
)
in
;
layout
(
local_size_x
=
8
,
local_size_y
=
8
,
local_size_z
=
1
)
in
;
/* clang-format on */
layout
(
set
=
0
,
binding
=
0
)
uniform
samplerCube
source_cube
;
layout
(
set
=
0
,
binding
=
0
)
uniform
samplerCube
source_cube
;
...
@@ -18,7 +16,6 @@ layout(push_constant, binding = 1, std430) uniform Params {
...
@@ -18,7 +16,6 @@ layout(push_constant, binding = 1, std430) uniform Params {
float
z_near
;
float
z_near
;
bool
z_flip
;
bool
z_flip
;
}
}
params
;
params
;
layout
(
r32f
,
set
=
1
,
binding
=
0
)
uniform
restrict
writeonly
image2D
depth_buffer
;
layout
(
r32f
,
set
=
1
,
binding
=
0
)
uniform
restrict
writeonly
image2D
depth_buffer
;
...
...
servers/rendering/rasterizer_rd/shaders/cubemap_downsampler.glsl
View file @
b5d0f2a8
...
@@ -18,8 +18,7 @@
...
@@ -18,8 +18,7 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
// SOFTWARE.
/* clang-format off */
#[compute]
[
compute
]
#version 450
#version 450
...
@@ -28,7 +27,6 @@ VERSION_DEFINES
...
@@ -28,7 +27,6 @@ VERSION_DEFINES
#define BLOCK_SIZE 8
#define BLOCK_SIZE 8
layout
(
local_size_x
=
BLOCK_SIZE
,
local_size_y
=
BLOCK_SIZE
,
local_size_z
=
1
)
in
;
layout
(
local_size_x
=
BLOCK_SIZE
,
local_size_y
=
BLOCK_SIZE
,
local_size_z
=
1
)
in
;
/* clang-format on */
layout
(
set
=
0
,
binding
=
0
)
uniform
samplerCube
source_cubemap
;
layout
(
set
=
0
,
binding
=
0
)
uniform
samplerCube
source_cubemap
;
...
@@ -37,7 +35,6 @@ layout(rgba16f, set = 1, binding = 0) uniform restrict writeonly imageCube dest_
...
@@ -37,7 +35,6 @@ layout(rgba16f, set = 1, binding = 0) uniform restrict writeonly imageCube dest_
layout
(
push_constant
,
binding
=
1
,
std430
)
uniform
Params
{
layout
(
push_constant
,
binding
=
1
,
std430
)
uniform
Params
{
uint
face_size
;
uint
face_size
;
}
}
params
;
params
;
#define M_PI 3.14159265359
#define M_PI 3.14159265359
...
...
servers/rendering/rasterizer_rd/shaders/cubemap_filter.glsl
View file @
b5d0f2a8
...
@@ -18,8 +18,7 @@
...
@@ -18,8 +18,7 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
// SOFTWARE.
/* clang-format off */
#[compute]
[
compute
]
#version 450
#version 450
...
@@ -28,7 +27,6 @@ VERSION_DEFINES
...
@@ -28,7 +27,6 @@ VERSION_DEFINES
#define GROUP_SIZE 64
#define GROUP_SIZE 64
layout
(
local_size_x
=
GROUP_SIZE
,
local_size_y
=
1
,
local_size_z
=
1
)
in
;
layout
(
local_size_x
=
GROUP_SIZE
,
local_size_y
=
1
,
local_size_z
=
1
)
in
;
/* clang-format on */
layout
(
set
=
0
,
binding
=
0
)
uniform
samplerCube
source_cubemap
;
layout
(
set
=
0
,
binding
=
0
)
uniform
samplerCube
source_cubemap
;
layout
(
rgba16f
,
set
=
2
,
binding
=
0
)
uniform
restrict
writeonly
imageCube
dest_cubemap0
;
layout
(
rgba16f
,
set
=
2
,
binding
=
0
)
uniform
restrict
writeonly
imageCube
dest_cubemap0
;
...
@@ -51,13 +49,11 @@ layout(rgba16f, set = 2, binding = 6) uniform restrict writeonly imageCube dest_
...
@@ -51,13 +49,11 @@ layout(rgba16f, set = 2, binding = 6) uniform restrict writeonly imageCube dest_
layout
(
set
=
1
,
binding
=
0
,
std430
)
buffer
restrict
readonly
Data
{
layout
(
set
=
1
,
binding
=
0
,
std430
)
buffer
restrict
readonly
Data
{
vec4
[
7
][
5
][
3
][
24
]
coeffs
;
vec4
[
7
][
5
][
3
][
24
]
coeffs
;
}
}
data
;
data
;
#else
#else
layout
(
set
=
1
,
binding
=
0
,
std430
)
buffer
restrict
readonly
Data
{
layout
(
set
=
1
,
binding
=
0
,
std430
)
buffer
restrict
readonly
Data
{
vec4
[
7
][
5
][
6
]
coeffs
;
vec4
[
7
][
5
][
6
]
coeffs
;
}
}
data
;
data
;
#endif
#endif
...
...
servers/rendering/rasterizer_rd/shaders/cubemap_roughness.glsl
View file @
b5d0f2a8
/* clang-format off */
#[compute]
[
compute
]
#version 450
#version 450
...
@@ -8,7 +7,6 @@ VERSION_DEFINES
...
@@ -8,7 +7,6 @@ VERSION_DEFINES
#define GROUP_SIZE 8
#define GROUP_SIZE 8
layout
(
local_size_x
=
GROUP_SIZE
,
local_size_y
=
GROUP_SIZE
,
local_size_z
=
1
)
in
;
layout
(
local_size_x
=
GROUP_SIZE
,
local_size_y
=
GROUP_SIZE
,
local_size_z
=
1
)
in
;
/* clang-format on */
layout
(
set
=
0
,
binding
=
0
)
uniform
samplerCube
source_cube
;
layout
(
set
=
0
,
binding
=
0
)
uniform
samplerCube
source_cube
;
...
@@ -21,7 +19,6 @@ layout(push_constant, binding = 1, std430) uniform Params {
...
@@ -21,7 +19,6 @@ layout(push_constant, binding = 1, std430) uniform Params {
bool
use_direct_write
;
bool
use_direct_write
;
float
face_size
;
float
face_size
;
}
}
params
;
params
;
#define M_PI 3.14159265359
#define M_PI 3.14159265359
...
...
servers/rendering/rasterizer_rd/shaders/giprobe.glsl
View file @
b5d0f2a8
/* clang-format off */
#[compute]
[
compute
]
#version 450
#version 450
...
@@ -10,7 +9,6 @@ layout(local_size_x = 8, local_size_y = 8, local_size_z = 1) in;
...
@@ -10,7 +9,6 @@ layout(local_size_x = 8, local_size_y = 8, local_size_z = 1) in;
#else
#else
layout
(
local_size_x
=
64
,
local_size_y
=
1
,
local_size_z
=
1
)
in
;
layout
(
local_size_x
=
64
,
local_size_y
=
1
,
local_size_z
=
1
)
in
;
#endif
#endif
/* clang-format on */
#ifndef MODE_DYNAMIC
#ifndef MODE_DYNAMIC
...
@@ -24,7 +22,6 @@ struct CellChildren {
...
@@ -24,7 +22,6 @@ struct CellChildren {
layout
(
set
=
0
,
binding
=
1
,
std430
)
buffer
CellChildrenBuffer
{
layout
(
set
=
0
,
binding
=
1
,
std430
)
buffer
CellChildrenBuffer
{
CellChildren
data
[];
CellChildren
data
[];
}
}
cell_children
;
cell_children
;
struct
CellData
{
struct
CellData
{
...
@@ -37,7 +34,6 @@ struct CellData {
...
@@ -37,7 +34,6 @@ struct CellData {
layout
(
set
=
0
,
binding
=
2
,
std430
)
buffer
CellDataBuffer
{
layout
(
set
=
0
,
binding
=
2
,
std430
)
buffer
CellDataBuffer
{
CellData
data
[];
CellData
data
[];
}
}
cell_data
;
cell_data
;
#endif // MODE DYNAMIC
#endif // MODE DYNAMIC
...
@@ -67,7 +63,6 @@ struct Light {
...
@@ -67,7 +63,6 @@ struct Light {
layout
(
set
=
0
,
binding
=
3
,
std140
)
uniform
Lights
{
layout
(
set
=
0
,
binding
=
3
,
std140
)
uniform
Lights
{
Light
data
[
MAX_LIGHTS
];
Light
data
[
MAX_LIGHTS
];
}
}
lights
;
lights
;
#endif // MODE COMPUTE LIGHT
#endif // MODE COMPUTE LIGHT
...
@@ -99,13 +94,11 @@ layout(push_constant, binding = 0, std430) uniform Params {
...
@@ -99,13 +94,11 @@ layout(push_constant, binding = 0, std430) uniform Params {
float
aniso_strength
;
float
aniso_strength
;
uint
pad
;
uint
pad
;
}
}
params
;
params
;
layout
(
set
=
0
,
binding
=
4
,
std430
)
buffer
Outputs
{
layout
(
set
=
0
,
binding
=
4
,
std430
)
buffer
Outputs
{
vec4
data
[];
vec4
data
[];
}
}
outputs
;
outputs
;
#endif // MODE DYNAMIC
#endif // MODE DYNAMIC
...
@@ -148,7 +141,6 @@ layout(push_constant, binding = 0, std430) uniform Params {
...
@@ -148,7 +141,6 @@ layout(push_constant, binding = 0, std430) uniform Params {
float
propagation
;
float
propagation
;
float
pad
[
3
];
float
pad
[
3
];
}
}
params
;
params
;
#ifdef MODE_DYNAMIC_LIGHTING
#ifdef MODE_DYNAMIC_LIGHTING
...
...
servers/rendering/rasterizer_rd/shaders/giprobe_debug.glsl
View file @
b5d0f2a8
/* clang-format off */
#[vertex]
[
vertex
]
#version 450
#version 450
...
@@ -11,12 +10,10 @@ struct CellData {
...
@@ -11,12 +10,10 @@ struct CellData {
uint
emission
;
//rgb normalized with e as multiplier
uint
emission
;
//rgb normalized with e as multiplier
uint
normal
;
//RGB normal encoded
uint
normal
;
//RGB normal encoded
};
};
/* clang-format on */
layout
(
set
=
0
,
binding
=
1
,
std140
)
buffer
CellDataBuffer
{
layout
(
set
=
0
,
binding
=
1
,
std140
)
buffer
CellDataBuffer
{
CellData
data
[];
CellData
data
[];
}
}
cell_data
;
cell_data
;
layout
(
set
=
0
,
binding
=
2
)
uniform
texture3D
color_tex
;
layout
(
set
=
0
,
binding
=
2
)
uniform
texture3D
color_tex
;
...
@@ -37,7 +34,6 @@ layout(push_constant, binding = 0, std430) uniform Params {
...
@@ -37,7 +34,6 @@ layout(push_constant, binding = 0, std430) uniform Params {
ivec3
bounds
;
ivec3
bounds
;
uint
pad
;
uint
pad
;
}
}
params
;
params
;
layout
(
location
=
0
)
out
vec4
color_interp
;
layout
(
location
=
0
)
out
vec4
color_interp
;
...
@@ -172,15 +168,13 @@ void main() {
...
@@ -172,15 +168,13 @@ void main() {
#endif
#endif
}
}
/* clang-format off */
#[fragment]
[
fragment
]
#version 450
#version 450
VERSION_DEFINES
VERSION_DEFINES
layout
(
location
=
0
)
in
vec4
color_interp
;
layout
(
location
=
0
)
in
vec4
color_interp
;
/* clang-format on */
layout
(
location
=
0
)
out
vec4
frag_color
;
layout
(
location
=
0
)
out
vec4
frag_color
;
void
main
()
{
void
main
()
{
...
...
servers/rendering/rasterizer_rd/shaders/giprobe_sdf.glsl
View file @
b5d0f2a8
/* clang-format off */
#[compute]
[
compute
]
#version 450
#version 450
VERSION_DEFINES
VERSION_DEFINES
layout
(
local_size_x
=
4
,
local_size_y
=
4
,
local_size_z
=
4
)
in
;
layout
(
local_size_x
=
4
,
local_size_y
=
4
,
local_size_z
=
4
)
in
;
/* clang-format on */
#define MAX_DISTANCE 100000
#define MAX_DISTANCE 100000
...
@@ -20,7 +18,6 @@ struct CellChildren {
...
@@ -20,7 +18,6 @@ struct CellChildren {
layout
(
set
=
0
,
binding
=
1
,
std430
)
buffer
CellChildrenBuffer
{
layout
(
set
=
0
,
binding
=
1
,
std430
)
buffer
CellChildrenBuffer
{
CellChildren
data
[];
CellChildren
data
[];
}
}
cell_children
;
cell_children
;
struct
CellData
{
struct
CellData
{
...
@@ -33,7 +30,6 @@ struct CellData {
...
@@ -33,7 +30,6 @@ struct CellData {
layout
(
set
=
0
,
binding
=
2
,
std430
)
buffer
CellDataBuffer
{
layout
(
set
=
0
,
binding
=
2
,
std430
)
buffer
CellDataBuffer
{
CellData
data
[];
CellData
data
[];
}
}
cell_data
;
cell_data
;
layout
(
r8ui
,
set
=
0
,
binding
=
3
)
uniform
restrict
writeonly
uimage3D
sdf_tex
;
layout
(
r8ui
,
set
=
0
,
binding
=
3
)
uniform
restrict
writeonly
uimage3D
sdf_tex
;
...
@@ -44,7 +40,6 @@ layout(push_constant, binding = 0, std430) uniform Params {
...
@@ -44,7 +40,6 @@ layout(push_constant, binding = 0, std430) uniform Params {
uint
pad0
;
uint
pad0
;
uint
pad1
;
uint
pad1
;
}
}
params
;
params
;
void
main
()
{
void
main
()
{
...
@@ -73,20 +68,17 @@ void main() {
...
@@ -73,20 +68,17 @@ void main() {
#if 0
#if 0
layout(push_constant, binding = 0, std430) uniform Params {
layout(push_constant, binding = 0, std430) uniform Params {
ivec3 limits;
ivec3 limits;
uint stack_size;
uint stack_size;
} params;
}
params;
float distance_to_aabb(ivec3 pos, ivec3 aabb_pos, ivec3 aabb_size) {
float distance_to_aabb(ivec3 pos, ivec3 aabb_pos, ivec3 aabb_size) {
vec3 delta = vec3(max(ivec3(0), max(aabb_pos - pos, pos - (aabb_pos + aabb_size - ivec3(1)))));
vec3 delta = vec3(max(ivec3(0), max(aabb_pos - pos, pos - (aabb_pos + aabb_size - ivec3(1)))));
return length(delta);
return length(delta);
}
}
void main() {
void main() {
ivec3 pos = ivec3(gl_GlobalInvocationID);
ivec3 pos = ivec3(gl_GlobalInvocationID);
uint stack[10] = uint[](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
uint stack[10] = uint[](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
...
@@ -110,7 +102,6 @@ void main() {
...
@@ -110,7 +102,6 @@ void main() {
int stack_pos = 0;
int stack_pos = 0;
while (true) {
while (true) {
uint index = stack_indices[stack_pos] >> 24;
uint index = stack_indices[stack_pos] >> 24;
if (index == 8) {
if (index == 8) {
...
...
servers/rendering/rasterizer_rd/shaders/giprobe_write.glsl
View file @
b5d0f2a8
/* clang-format off */
#[compute]
[
compute
]
#version 450
#version 450
VERSION_DEFINES
VERSION_DEFINES
layout
(
local_size_x
=
64
,
local_size_y
=
1
,
local_size_z
=
1
)
in
;
layout
(
local_size_x
=
64
,
local_size_y
=
1
,
local_size_z
=
1
)
in
;
/* clang-format on */
#define NO_CHILDREN 0xFFFFFFFF
#define NO_CHILDREN 0xFFFFFFFF
#define GREY_VEC vec3(0.33333, 0.33333, 0.33333)
#define GREY_VEC vec3(0.33333, 0.33333, 0.33333)
...
@@ -18,7 +16,6 @@ struct CellChildren {
...
@@ -18,7 +16,6 @@ struct CellChildren {
layout
(
set
=
0
,
binding
=
1
,
std430
)
buffer
CellChildrenBuffer
{
layout
(
set
=
0
,
binding
=
1
,
std430
)
buffer
CellChildrenBuffer
{
CellChildren
data
[];
CellChildren
data
[];
}
}
cell_children
;
cell_children
;
struct
CellData
{
struct
CellData
{
...
@@ -31,7 +28,6 @@ struct CellData {
...
@@ -31,7 +28,6 @@ struct CellData {
layout
(
set
=
0
,
binding
=
2
,
std430
)
buffer
CellDataBuffer
{
layout
(
set
=
0
,
binding
=
2
,
std430
)
buffer
CellDataBuffer
{
CellData
data
[];
CellData
data
[];
}
}
cell_data
;
cell_data
;
#define LIGHT_TYPE_DIRECTIONAL 0
#define LIGHT_TYPE_DIRECTIONAL 0
...
@@ -59,7 +55,6 @@ struct Light {
...
@@ -59,7 +55,6 @@ struct Light {
layout
(
set
=
0
,
binding
=
3
,
std140
)
uniform
Lights
{
layout
(
set
=
0
,
binding
=
3
,
std140
)
uniform
Lights
{
Light
data
[
MAX_LIGHTS
];
Light
data
[
MAX_LIGHTS
];
}
}
lights
;
lights
;
#endif
#endif
...
@@ -77,13 +72,11 @@ layout(push_constant, binding = 0, std430) uniform Params {
...
@@ -77,13 +72,11 @@ layout(push_constant, binding = 0, std430) uniform Params {
uint
cell_count
;
uint
cell_count
;
uint
pad
[
2
];
uint
pad
[
2
];
}
}
params
;
params
;
layout
(
set
=
0
,
binding
=
4
,
std140
)
uniform
Outputs
{
layout
(
set
=
0
,
binding
=
4
,
std140
)
uniform
Outputs
{
vec4
data
[];
vec4
data
[];
}
}
output
;
output
;
#ifdef MODE_COMPUTE_LIGHT
#ifdef MODE_COMPUTE_LIGHT
...
@@ -94,7 +87,6 @@ uint raymarch(float distance, float distance_adv, vec3 from, vec3 direction) {
...
@@ -94,7 +87,6 @@ uint raymarch(float distance, float distance_adv, vec3 from, vec3 direction) {
ivec3
size
=
ivec3
(
max
(
max
(
params
.
limits
.
x
,
params
.
limits
.
y
),
params
.
limits
.
z
));
ivec3
size
=
ivec3
(
max
(
max
(
params
.
limits
.
x
,
params
.
limits
.
y
),
params
.
limits
.
z
));
while
(
distance
>
-
distance_adv
)
{
//use this to avoid precision errors
while
(
distance
>
-
distance_adv
)
{
//use this to avoid precision errors
uint
cell
=
0
;
uint
cell
=
0
;
ivec3
pos
=
ivec3
(
from
);
ivec3
pos
=
ivec3
(
from
);
...
@@ -120,8 +112,9 @@ uint raymarch(float distance, float distance_adv, vec3 from, vec3 direction) {
...
@@ -120,8 +112,9 @@ uint raymarch(float distance, float distance_adv, vec3 from, vec3 direction) {
}
}
cell
=
cell_children
.
data
[
cell
].
children
[
child
];
cell
=
cell_children
.
data
[
cell
].
children
[
child
];
if
(
cell
==
NO_CHILDREN
)
if
(
cell
==
NO_CHILDREN
)
{
break
;
break
;
}
half_size
>>=
ivec3
(
1
);
half_size
>>=
ivec3
(
1
);
}
}
...
@@ -142,7 +135,6 @@ bool compute_light_vector(uint light, uint cell, vec3 pos, out float attenuation
...
@@ -142,7 +135,6 @@ bool compute_light_vector(uint light, uint cell, vec3 pos, out float attenuation
if
(
lights
.
data
[
light
].
type
==
LIGHT_TYPE_DIRECTIONAL
)
{
if
(
lights
.
data
[
light
].
type
==
LIGHT_TYPE_DIRECTIONAL
)
{
light_pos
=
pos
-
lights
.
data
[
light
].
direction
*
length
(
vec3
(
params
.
limits
));
light_pos
=
pos
-
lights
.
data
[
light
].
direction
*
length
(
vec3
(
params
.
limits
));
attenuation
=
1
.
0
;
attenuation
=
1
.
0
;
}
else
{
}
else
{
light_pos
=
lights
.
data
[
light
].
position
;
light_pos
=
lights
.
data
[
light
].
position
;
float
distance
=
length
(
pos
-
light_pos
);
float
distance
=
length
(
pos
-
light_pos
);
...
...
servers/rendering/rasterizer_rd/shaders/luminance_reduce.glsl
View file @
b5d0f2a8
/* clang-format off */
#[compute]
[
compute
]
#version 450
#version 450
...
@@ -8,7 +7,6 @@ VERSION_DEFINES
...
@@ -8,7 +7,6 @@ VERSION_DEFINES
#define BLOCK_SIZE 8
#define BLOCK_SIZE 8
layout
(
local_size_x
=
BLOCK_SIZE
,
local_size_y
=
BLOCK_SIZE
,
local_size_z
=
1
)
in
;
layout
(
local_size_x
=
BLOCK_SIZE
,
local_size_y
=
BLOCK_SIZE
,
local_size_z
=
1
)
in
;
/* clang-format on */
shared
float
tmp_data
[
BLOCK_SIZE
*
BLOCK_SIZE
];
shared
float
tmp_data
[
BLOCK_SIZE
*
BLOCK_SIZE
];
...
@@ -37,7 +35,6 @@ layout(push_constant, binding = 1, std430) uniform Params {
...
@@ -37,7 +35,6 @@ layout(push_constant, binding = 1, std430) uniform Params {
float
exposure_adjust
;
float
exposure_adjust
;
float
pad
[
3
];
float
pad
[
3
];
}
}
params
;
params
;
void
main
()
{
void
main
()
{
...
@@ -68,7 +65,6 @@ void main() {
...
@@ -68,7 +65,6 @@ void main() {
barrier
();
barrier
();
size
>>=
1
;
size
>>=
1
;
}
while
(
size
>=
1
);
}
while
(
size
>=
1
);
if
(
t
==
0
)
{
if
(
t
==
0
)
{
...
...
servers/rendering/rasterizer_rd/shaders/roughness_limiter.glsl
View file @
b5d0f2a8
/* clang-format off */
#[compute]
[
compute
]
#version 450
#version 450
VERSION_DEFINES
VERSION_DEFINES
layout
(
local_size_x
=
8
,
local_size_y
=
8
,
local_size_z
=
1
)
in
;
layout
(
local_size_x
=
8
,
local_size_y
=
8
,
local_size_z
=
1
)
in
;
/* clang-format on */
layout
(
set
=
0
,
binding
=
0
)
uniform
sampler2D
source_normal
;
layout
(
set
=
0
,
binding
=
0
)
uniform
sampler2D
source_normal
;
layout
(
r8
,
set
=
1
,
binding
=
0
)
uniform
restrict
writeonly
image2D
dest_roughness
;
layout
(
r8
,
set
=
1
,
binding
=
0
)
uniform
restrict
writeonly
image2D
dest_roughness
;
...
@@ -16,7 +14,6 @@ layout(push_constant, binding = 1, std430) uniform Params {
...
@@ -16,7 +14,6 @@ layout(push_constant, binding = 1, std430) uniform Params {
float
curve
;
float
curve
;
uint
pad
;
uint
pad
;
}
}
params
;
params
;
#define HALF_PI 1.5707963267948966
#define HALF_PI 1.5707963267948966
...
@@ -53,14 +50,14 @@ void main() {
...
@@ -53,14 +50,14 @@ void main() {
float kappa = (3.0f * r - r * r2) / (1.0f - r2);
float kappa = (3.0f * r - r * r2) / (1.0f - r2);
float variance = 0.25f / kappa;
float variance = 0.25f / kappa;
limit = sqrt(min(2.0f * variance, threshold * threshold));
limit = sqrt(min(2.0f * variance, threshold * threshold));
//
*/
*/
/*
/*
//Formula based on probability distribution graph
//Formula based on probability distribution graph
float width = acos(max(0.0,r)); // convert to angle (width)
float width = acos(max(0.0,r)); // convert to angle (width)
float roughness = pow(width,1.7)*0.854492; //approximate (crappy) formula to convert to roughness
float roughness = pow(width,1.7)*0.854492; //approximate (crappy) formula to convert to roughness
limit = min(sqrt(roughness), threshold); //convert to perceptual roughness and apply threshold
limit = min(sqrt(roughness), threshold); //convert to perceptual roughness and apply threshold
//
*/
*/
limit
=
min
(
sqrt
(
pow
(
acos
(
max
(
0
.
0
,
r
))
/
HALF_PI
,
params
.
curve
)),
threshold
);
//convert to perceptual roughness and apply threshold
limit
=
min
(
sqrt
(
pow
(
acos
(
max
(
0
.
0
,
r
))
/
HALF_PI
,
params
.
curve
)),
threshold
);
//convert to perceptual roughness and apply threshold
...
...
servers/rendering/rasterizer_rd/shaders/scene_high_end.glsl
View file @
b5d0f2a8
/* clang-format off */
#[vertex]
[
vertex
]
#version 450
#version 450
...
@@ -10,7 +9,6 @@ VERSION_DEFINES
...
@@ -10,7 +9,6 @@ VERSION_DEFINES
/* INPUT ATTRIBS */
/* INPUT ATTRIBS */
layout
(
location
=
0
)
in
vec3
vertex_attrib
;
layout
(
location
=
0
)
in
vec3
vertex_attrib
;
/* clang-format on */
layout
(
location
=
1
)
in
vec3
normal_attrib
;
layout
(
location
=
1
)
in
vec3
normal_attrib
;
#if defined(TANGENT_USED) || defined(NORMALMAP_USED) || defined(LIGHT_ANISOTROPY_USED)
#if defined(TANGENT_USED) || defined(NORMALMAP_USED) || defined(LIGHT_ANISOTROPY_USED)
layout
(
location
=
2
)
in
vec4
tangent_attrib
;
layout
(
location
=
2
)
in
vec4
tangent_attrib
;
...
@@ -62,8 +60,6 @@ VERTEX_SHADER_GLOBALS
...
@@ -62,8 +60,6 @@ VERTEX_SHADER_GLOBALS
/* clang-format on */
/* clang-format on */
// FIXME: This triggers a Mesa bug that breaks rendering, so disabled for now.
// See GH-13450 and https://bugs.freedesktop.org/show_bug.cgi?id=100316
invariant
gl_Position
;
invariant
gl_Position
;
layout
(
location
=
7
)
flat
out
uint
instance_index
;
layout
(
location
=
7
)
flat
out
uint
instance_index
;
...
@@ -272,8 +268,7 @@ VERTEX_SHADER_CODE
...
@@ -272,8 +268,7 @@ VERTEX_SHADER_CODE
#endif
#endif
}
}
/* clang-format off */
#[fragment]
[
fragment
]
#version 450
#version 450
...
@@ -284,7 +279,6 @@ VERSION_DEFINES
...
@@ -284,7 +279,6 @@ VERSION_DEFINES
/* Varyings */
/* Varyings */
layout
(
location
=
0
)
in
vec3
vertex_interp
;
layout
(
location
=
0
)
in
vec3
vertex_interp
;
/* clang-format on */
layout
(
location
=
1
)
in
vec3
normal_interp
;
layout
(
location
=
1
)
in
vec3
normal_interp
;
#if defined(COLOR_USED)
#if defined(COLOR_USED)
...
...
servers/rendering/rasterizer_rd/shaders/scene_high_end_inc.glsl
View file @
b5d0f2a8
...
@@ -6,7 +6,6 @@ layout(push_constant, binding = 0, std430) uniform DrawCall {
...
@@ -6,7 +6,6 @@ layout(push_constant, binding = 0, std430) uniform DrawCall {
uint
pad
;
//16 bits minimum size
uint
pad
;
//16 bits minimum size
vec2
bake_uv2_offset
;
//used for bake to uv2, ignored otherwise
vec2
bake_uv2_offset
;
//used for bake to uv2, ignored otherwise
}
}
draw_call
;
draw_call
;
/* Set 0 Scene data that never changes, ever */
/* Set 0 Scene data that never changes, ever */
...
@@ -148,7 +147,6 @@ struct InstanceData {
...
@@ -148,7 +147,6 @@ struct InstanceData {
layout
(
set
=
0
,
binding
=
4
,
std430
)
restrict
readonly
buffer
Instances
{
layout
(
set
=
0
,
binding
=
4
,
std430
)
restrict
readonly
buffer
Instances
{
InstanceData
data
[];
InstanceData
data
[];
}
}
instances
;
instances
;
struct
LightData
{
//this structure needs to be as packed as possible
struct
LightData
{
//this structure needs to be as packed as possible
...
@@ -175,7 +173,6 @@ struct LightData { //this structure needs to be as packed as possible
...
@@ -175,7 +173,6 @@ struct LightData { //this structure needs to be as packed as possible
layout
(
set
=
0
,
binding
=
5
,
std430
)
restrict
readonly
buffer
Lights
{
layout
(
set
=
0
,
binding
=
5
,
std430
)
restrict
readonly
buffer
Lights
{
LightData
data
[];
LightData
data
[];
}
}
lights
;
lights
;
struct
ReflectionData
{
struct
ReflectionData
{
...
@@ -192,7 +189,6 @@ struct ReflectionData {
...
@@ -192,7 +189,6 @@ struct ReflectionData {
layout
(
set
=
0
,
binding
=
6
,
std140
)
uniform
ReflectionProbeData
{
layout
(
set
=
0
,
binding
=
6
,
std140
)
uniform
ReflectionProbeData
{
ReflectionData
data
[
MAX_REFLECTION_DATA_STRUCTS
];
ReflectionData
data
[
MAX_REFLECTION_DATA_STRUCTS
];
}
}
reflections
;
reflections
;
struct
DirectionalLightData
{
struct
DirectionalLightData
{
...
@@ -231,7 +227,6 @@ struct DirectionalLightData {
...
@@ -231,7 +227,6 @@ struct DirectionalLightData {
layout
(
set
=
0
,
binding
=
7
,
std140
)
uniform
DirectionalLights
{
layout
(
set
=
0
,
binding
=
7
,
std140
)
uniform
DirectionalLights
{
DirectionalLightData
data
[
MAX_DIRECTIONAL_LIGHT_DATA_STRUCTS
];
DirectionalLightData
data
[
MAX_DIRECTIONAL_LIGHT_DATA_STRUCTS
];
}
}
directional_lights
;
directional_lights
;
struct
GIProbeData
{
struct
GIProbeData
{
...
@@ -253,7 +248,6 @@ struct GIProbeData {
...
@@ -253,7 +248,6 @@ struct GIProbeData {
layout
(
set
=
0
,
binding
=
8
,
std140
)
uniform
GIProbes
{
layout
(
set
=
0
,
binding
=
8
,
std140
)
uniform
GIProbes
{
GIProbeData
data
[
MAX_GI_PROBES
];
GIProbeData
data
[
MAX_GI_PROBES
];
}
}
gi_probes
;
gi_probes
;
layout
(
set
=
0
,
binding
=
9
)
uniform
texture3D
gi_probe_textures
[
MAX_GI_PROBE_TEXTURES
];
layout
(
set
=
0
,
binding
=
9
)
uniform
texture3D
gi_probe_textures
[
MAX_GI_PROBE_TEXTURES
];
...
@@ -268,7 +262,6 @@ struct Lightmap {
...
@@ -268,7 +262,6 @@ struct Lightmap {
layout
(
set
=
0
,
binding
=
10
,
std140
)
restrict
readonly
buffer
Lightmaps
{
layout
(
set
=
0
,
binding
=
10
,
std140
)
restrict
readonly
buffer
Lightmaps
{
Lightmap
data
[];
Lightmap
data
[];
}
}
lightmaps
;
lightmaps
;
layout
(
set
=
0
,
binding
=
11
)
uniform
texture2DArray
lightmap_textures
[
MAX_LIGHTMAP_TEXTURES
];
layout
(
set
=
0
,
binding
=
11
)
uniform
texture2DArray
lightmap_textures
[
MAX_LIGHTMAP_TEXTURES
];
...
@@ -280,7 +273,6 @@ struct LightmapCapture {
...
@@ -280,7 +273,6 @@ struct LightmapCapture {
layout
(
set
=
0
,
binding
=
12
,
std140
)
restrict
readonly
buffer
LightmapCaptures
{
layout
(
set
=
0
,
binding
=
12
,
std140
)
restrict
readonly
buffer
LightmapCaptures
{
LightmapCapture
data
[];
LightmapCapture
data
[];
}
}
lightmap_captures
;
lightmap_captures
;
#define CLUSTER_COUNTER_SHIFT 20
#define CLUSTER_COUNTER_SHIFT 20
...
@@ -311,7 +303,6 @@ struct DecalData {
...
@@ -311,7 +303,6 @@ struct DecalData {
layout
(
set
=
0
,
binding
=
15
,
std430
)
restrict
readonly
buffer
Decals
{
layout
(
set
=
0
,
binding
=
15
,
std430
)
restrict
readonly
buffer
Decals
{
DecalData
data
[];
DecalData
data
[];
}
}
decals
;
decals
;
layout
(
set
=
0
,
binding
=
16
)
uniform
utexture3D
cluster_texture
;
layout
(
set
=
0
,
binding
=
16
)
uniform
utexture3D
cluster_texture
;
...
@@ -319,7 +310,6 @@ layout(set = 0, binding = 16) uniform utexture3D cluster_texture;
...
@@ -319,7 +310,6 @@ layout(set = 0, binding = 16) uniform utexture3D cluster_texture;
layout
(
set
=
0
,
binding
=
17
,
std430
)
restrict
readonly
buffer
ClusterData
{
layout
(
set
=
0
,
binding
=
17
,
std430
)
restrict
readonly
buffer
ClusterData
{
uint
indices
[];
uint
indices
[];
}
}
cluster_data
;
cluster_data
;
layout
(
set
=
0
,
binding
=
18
)
uniform
texture2D
directional_shadow_atlas
;
layout
(
set
=
0
,
binding
=
18
)
uniform
texture2D
directional_shadow_atlas
;
...
@@ -327,7 +317,6 @@ layout(set = 0, binding = 18) uniform texture2D directional_shadow_atlas;
...
@@ -327,7 +317,6 @@ layout(set = 0, binding = 18) uniform texture2D directional_shadow_atlas;
layout
(
set
=
0
,
binding
=
19
,
std430
)
restrict
readonly
buffer
GlobalVariableData
{
layout
(
set
=
0
,
binding
=
19
,
std430
)
restrict
readonly
buffer
GlobalVariableData
{
vec4
data
[];
vec4
data
[];
}
}
global_variables
;
global_variables
;
// decal atlas
// decal atlas
...
@@ -363,7 +352,6 @@ layout(set = 3, binding = 4) uniform texture2D ao_buffer;
...
@@ -363,7 +352,6 @@ layout(set = 3, binding = 4) uniform texture2D ao_buffer;
layout
(
set
=
4
,
binding
=
0
,
std430
)
restrict
readonly
buffer
Transforms
{
layout
(
set
=
4
,
binding
=
0
,
std430
)
restrict
readonly
buffer
Transforms
{
vec4
data
[];
vec4
data
[];
}
}
transforms
;
transforms
;
/* Set 5 User Material */
/* Set 5 User Material */
servers/rendering/rasterizer_rd/shaders/screen_space_reflection.glsl
View file @
b5d0f2a8
/* clang-format off */
#[compute]
[
compute
]
#version 450
#version 450
VERSION_DEFINES
VERSION_DEFINES
layout
(
local_size_x
=
8
,
local_size_y
=
8
,
local_size_z
=
1
)
in
;
layout
(
local_size_x
=
8
,
local_size_y
=
8
,
local_size_z
=
1
)
in
;
/* clang-format on */
layout
(
rgba16f
,
set
=
0
,
binding
=
0
)
uniform
restrict
readonly
image2D
source_diffuse
;
layout
(
rgba16f
,
set
=
0
,
binding
=
0
)
uniform
restrict
readonly
image2D
source_diffuse
;
layout
(
r32f
,
set
=
0
,
binding
=
1
)
uniform
restrict
readonly
image2D
source_depth
;
layout
(
r32f
,
set
=
0
,
binding
=
1
)
uniform
restrict
readonly
image2D
source_depth
;
layout
(
rgba16f
,
set
=
1
,
binding
=
0
)
uniform
restrict
writeonly
image2D
ssr_image
;
layout
(
rgba16f
,
set
=
1
,
binding
=
0
)
uniform
restrict
writeonly
image2D
ssr_image
;
...
@@ -42,7 +37,6 @@ layout(push_constant, binding = 2, std430) uniform Params {
...
@@ -42,7 +37,6 @@ layout(push_constant, binding = 2, std430) uniform Params {
mat4
projection
;
mat4
projection
;
}
}
params
;
params
;
vec2
view_to_screen
(
vec3
view_pos
,
out
float
w
)
{
vec2
view_to_screen
(
vec3
view_pos
,
out
float
w
)
{
...
...
servers/rendering/rasterizer_rd/shaders/screen_space_reflection_filter.glsl
View file @
b5d0f2a8
/* clang-format off */
#[compute]
[
compute
]
#version 450
#version 450
VERSION_DEFINES
VERSION_DEFINES
layout
(
local_size_x
=
8
,
local_size_y
=
8
,
local_size_z
=
1
)
in
;
layout
(
local_size_x
=
8
,
local_size_y
=
8
,
local_size_z
=
1
)
in
;
/* clang-format on */
layout
(
rgba16f
,
set
=
0
,
binding
=
0
)
uniform
restrict
readonly
image2D
source_ssr
;
layout
(
rgba16f
,
set
=
0
,
binding
=
0
)
uniform
restrict
readonly
image2D
source_ssr
;
layout
(
r8
,
set
=
0
,
binding
=
1
)
uniform
restrict
readonly
image2D
source_radius
;
layout
(
r8
,
set
=
0
,
binding
=
1
)
uniform
restrict
readonly
image2D
source_radius
;
layout
(
rgba8
,
set
=
1
,
binding
=
0
)
uniform
restrict
readonly
image2D
source_normal
;
layout
(
rgba8
,
set
=
1
,
binding
=
0
)
uniform
restrict
readonly
image2D
source_normal
;
...
@@ -33,7 +28,6 @@ layout(push_constant, binding = 2, std430) uniform Params {
...
@@ -33,7 +28,6 @@ layout(push_constant, binding = 2, std430) uniform Params {
bool
vertical
;
bool
vertical
;
uint
steps
;
uint
steps
;
}
}
params
;
params
;
#define GAUSS_TABLE_SIZE 15
#define GAUSS_TABLE_SIZE 15
...
...
servers/rendering/rasterizer_rd/shaders/screen_space_reflection_scale.glsl
View file @
b5d0f2a8
/* clang-format off */
#[compute]
[
compute
]
#version 450
#version 450
VERSION_DEFINES
VERSION_DEFINES
layout
(
local_size_x
=
8
,
local_size_y
=
8
,
local_size_z
=
1
)
in
;
layout
(
local_size_x
=
8
,
local_size_y
=
8
,
local_size_z
=
1
)
in
;
/* clang-format on */
layout
(
set
=
0
,
binding
=
0
)
uniform
sampler2D
source_ssr
;
layout
(
set
=
0
,
binding
=
0
)
uniform
sampler2D
source_ssr
;
layout
(
set
=
1
,
binding
=
0
)
uniform
sampler2D
source_depth
;
layout
(
set
=
1
,
binding
=
0
)
uniform
sampler2D
source_depth
;
layout
(
set
=
1
,
binding
=
1
)
uniform
sampler2D
source_normal
;
layout
(
set
=
1
,
binding
=
1
)
uniform
sampler2D
source_normal
;
...
@@ -26,7 +22,6 @@ layout(push_constant, binding = 1, std430) uniform Params {
...
@@ -26,7 +22,6 @@ layout(push_constant, binding = 1, std430) uniform Params {
bool
filtered
;
bool
filtered
;
uint
pad
[
2
];
uint
pad
[
2
];
}
}
params
;
params
;
void
main
()
{
void
main
()
{
...
@@ -72,7 +67,6 @@ void main() {
...
@@ -72,7 +67,6 @@ void main() {
color
/=
4
.
0
;
color
/=
4
.
0
;
depth
/=
4
.
0
;
depth
/=
4
.
0
;
normal
=
normalize
(
normal
/
4
.
0
)
*
0
.
5
+
0
.
5
;
normal
=
normalize
(
normal
/
4
.
0
)
*
0
.
5
+
0
.
5
;
}
else
{
}
else
{
color
=
texelFetch
(
source_ssr
,
ssC
<<
1
,
0
);
color
=
texelFetch
(
source_ssr
,
ssC
<<
1
,
0
);
depth
=
texelFetch
(
source_depth
,
ssC
<<
1
,
0
).
r
;
depth
=
texelFetch
(
source_depth
,
ssC
<<
1
,
0
).
r
;
...
...
servers/rendering/rasterizer_rd/shaders/sky.glsl
View file @
b5d0f2a8
/* clang-format off */
#[vertex]
[
vertex
]
#version 450
#version 450
VERSION_DEFINES
VERSION_DEFINES
layout
(
location
=
0
)
out
vec2
uv_interp
;
layout
(
location
=
0
)
out
vec2
uv_interp
;
/* clang-format on */
layout
(
push_constant
,
binding
=
1
,
std430
)
uniform
Params
{
layout
(
push_constant
,
binding
=
1
,
std430
)
uniform
Params
{
mat3
orientation
;
mat3
orientation
;
...
@@ -14,7 +12,6 @@ layout(push_constant, binding = 1, std430) uniform Params {
...
@@ -14,7 +12,6 @@ layout(push_constant, binding = 1, std430) uniform Params {
vec4
position_multiplier
;
vec4
position_multiplier
;
float
time
;
float
time
;
}
}
params
;
params
;
void
main
()
{
void
main
()
{
...
@@ -23,8 +20,7 @@ void main() {
...
@@ -23,8 +20,7 @@ void main() {
gl_Position
=
vec4
(
uv_interp
,
1
.
0
,
1
.
0
);
gl_Position
=
vec4
(
uv_interp
,
1
.
0
,
1
.
0
);
}
}
/* clang-format off */
#[fragment]
[
fragment
]
#version 450
#version 450
...
@@ -33,7 +29,6 @@ VERSION_DEFINES
...
@@ -33,7 +29,6 @@ VERSION_DEFINES
#define M_PI 3.14159265359
#define M_PI 3.14159265359
layout
(
location
=
0
)
in
vec2
uv_interp
;
layout
(
location
=
0
)
in
vec2
uv_interp
;
/* clang-format on */
layout
(
push_constant
,
binding
=
1
,
std430
)
uniform
Params
{
layout
(
push_constant
,
binding
=
1
,
std430
)
uniform
Params
{
mat3
orientation
;
mat3
orientation
;
...
@@ -41,7 +36,6 @@ layout(push_constant, binding = 1, std430) uniform Params {
...
@@ -41,7 +36,6 @@ layout(push_constant, binding = 1, std430) uniform Params {
vec4
position_multiplier
;
vec4
position_multiplier
;
float
time
;
//TODO consider adding vec2 screen res, and float radiance size
float
time
;
//TODO consider adding vec2 screen res, and float radiance size
}
}
params
;
params
;
#define SAMPLER_NEAREST_CLAMP 0
#define SAMPLER_NEAREST_CLAMP 0
...
@@ -62,7 +56,6 @@ layout(set = 0, binding = 0) uniform sampler material_samplers[12];
...
@@ -62,7 +56,6 @@ layout(set = 0, binding = 0) uniform sampler material_samplers[12];
layout
(
set
=
0
,
binding
=
1
,
std430
)
restrict
readonly
buffer
GlobalVariableData
{
layout
(
set
=
0
,
binding
=
1
,
std430
)
restrict
readonly
buffer
GlobalVariableData
{
vec4
data
[];
vec4
data
[];
}
}
global_variables
;
global_variables
;
#ifdef USE_MATERIAL_UNIFORMS
#ifdef USE_MATERIAL_UNIFORMS
...
...
servers/rendering/rasterizer_rd/shaders/specular_merge.glsl
View file @
b5d0f2a8
/* clang-format off */
#[vertex]
[
vertex
]
#version 450
#version 450
VERSION_DEFINES
VERSION_DEFINES
layout
(
location
=
0
)
out
vec2
uv_interp
;
layout
(
location
=
0
)
out
vec2
uv_interp
;
/* clang-format on */
void
main
()
{
void
main
()
{
vec2
base_arr
[
4
]
=
vec2
[](
vec2
(
0
.
0
,
0
.
0
),
vec2
(
0
.
0
,
1
.
0
),
vec2
(
1
.
0
,
1
.
0
),
vec2
(
1
.
0
,
0
.
0
));
vec2
base_arr
[
4
]
=
vec2
[](
vec2
(
0
.
0
,
0
.
0
),
vec2
(
0
.
0
,
1
.
0
),
vec2
(
1
.
0
,
1
.
0
),
vec2
(
1
.
0
,
0
.
0
));
...
@@ -15,15 +13,13 @@ void main() {
...
@@ -15,15 +13,13 @@ void main() {
gl_Position
=
vec4
(
uv_interp
*
2
.
0
-
1
.
0
,
0
.
0
,
1
.
0
);
gl_Position
=
vec4
(
uv_interp
*
2
.
0
-
1
.
0
,
0
.
0
,
1
.
0
);
}
}
/* clang-format off */
#[fragment]
[
fragment
]
#version 450
#version 450
VERSION_DEFINES
VERSION_DEFINES
layout
(
location
=
0
)
in
vec2
uv_interp
;
layout
(
location
=
0
)
in
vec2
uv_interp
;
/* clang-format on */
layout
(
set
=
0
,
binding
=
0
)
uniform
sampler2D
specular
;
layout
(
set
=
0
,
binding
=
0
)
uniform
sampler2D
specular
;
...
...
servers/rendering/rasterizer_rd/shaders/ssao.glsl
View file @
b5d0f2a8
/* clang-format off */
#[compute]
[
compute
]
#version 450
#version 450
VERSION_DEFINES
VERSION_DEFINES
layout
(
local_size_x
=
8
,
local_size_y
=
8
,
local_size_z
=
1
)
in
;
layout
(
local_size_x
=
8
,
local_size_y
=
8
,
local_size_z
=
1
)
in
;
/* clang-format on */
#define TWO_PI 6.283185307179586476925286766559
#define TWO_PI 6.283185307179586476925286766559
...
@@ -49,7 +47,6 @@ const int ROTATIONS[] = int[](
...
@@ -49,7 +47,6 @@ const int ROTATIONS[] = int[](
29
,
21
,
19
,
27
,
31
,
29
,
21
,
18
,
17
,
29
,
29
,
21
,
19
,
27
,
31
,
29
,
21
,
18
,
17
,
29
,
31
,
31
,
23
,
18
,
25
,
26
,
25
,
23
,
19
,
34
,
31
,
31
,
23
,
18
,
25
,
26
,
25
,
23
,
19
,
34
,
19
,
27
,
21
,
25
,
39
,
29
,
17
,
21
,
27
);
19
,
27
,
21
,
25
,
39
,
29
,
17
,
21
,
27
);
/* clang-format on */
//#define NUM_SPIRAL_TURNS (7)
//#define NUM_SPIRAL_TURNS (7)
const
int
NUM_SPIRAL_TURNS
=
ROTATIONS
[
NUM_SAMPLES
-
1
];
const
int
NUM_SPIRAL_TURNS
=
ROTATIONS
[
NUM_SAMPLES
-
1
];
...
@@ -78,7 +75,6 @@ layout(push_constant, binding = 1, std430) uniform Params {
...
@@ -78,7 +75,6 @@ layout(push_constant, binding = 1, std430) uniform Params {
float
proj_scale
;
float
proj_scale
;
uint
pad
;
uint
pad
;
}
}
params
;
params
;
vec3
reconstructCSPosition
(
vec2
S
,
float
z
)
{
vec3
reconstructCSPosition
(
vec2
S
,
float
z
)
{
...
...
servers/rendering/rasterizer_rd/shaders/ssao_blur.glsl
View file @
b5d0f2a8
/* clang-format off */
#[compute]
[
compute
]
#version 450
#version 450
VERSION_DEFINES
VERSION_DEFINES
layout
(
local_size_x
=
8
,
local_size_y
=
8
,
local_size_z
=
1
)
in
;
layout
(
local_size_x
=
8
,
local_size_y
=
8
,
local_size_z
=
1
)
in
;
/* clang-format on */
layout
(
set
=
0
,
binding
=
0
)
uniform
sampler2D
source_ssao
;
layout
(
set
=
0
,
binding
=
0
)
uniform
sampler2D
source_ssao
;
layout
(
set
=
1
,
binding
=
0
)
uniform
sampler2D
source_depth
;
layout
(
set
=
1
,
binding
=
0
)
uniform
sampler2D
source_depth
;
...
@@ -31,7 +29,6 @@ layout(push_constant, binding = 1, std430) uniform Params {
...
@@ -31,7 +29,6 @@ layout(push_constant, binding = 1, std430) uniform Params {
ivec2
axis
;
/** (1, 0) or (0, 1) */
ivec2
axis
;
/** (1, 0) or (0, 1) */
ivec2
screen_size
;
ivec2
screen_size
;
}
}
params
;
params
;
/** Filter radius in pixels. This will be multiplied by SCALE. */
/** Filter radius in pixels. This will be multiplied by SCALE. */
...
...
servers/rendering/rasterizer_rd/shaders/ssao_minify.glsl
View file @
b5d0f2a8
/* clang-format off */
#[compute]
[
compute
]
#version 450
#version 450
VERSION_DEFINES
VERSION_DEFINES
layout
(
local_size_x
=
8
,
local_size_y
=
8
,
local_size_z
=
1
)
in
;
layout
(
local_size_x
=
8
,
local_size_y
=
8
,
local_size_z
=
1
)
in
;
/* clang-format on */
layout
(
push_constant
,
binding
=
1
,
std430
)
uniform
Params
{
layout
(
push_constant
,
binding
=
1
,
std430
)
uniform
Params
{
vec2
pixel_size
;
vec2
pixel_size
;
...
@@ -16,7 +14,6 @@ layout(push_constant, binding = 1, std430) uniform Params {
...
@@ -16,7 +14,6 @@ layout(push_constant, binding = 1, std430) uniform Params {
bool
orthogonal
;
bool
orthogonal
;
uint
pad
;
uint
pad
;
}
}
params
;
params
;
#ifdef MINIFY_START
#ifdef MINIFY_START
...
...
servers/rendering/rasterizer_rd/shaders/subsurface_scattering.glsl
View file @
b5d0f2a8
/* clang-format off */
#[compute]
[
compute
]
#version 450
#version 450
VERSION_DEFINES
VERSION_DEFINES
layout
(
local_size_x
=
8
,
local_size_y
=
8
,
local_size_z
=
1
)
in
;
layout
(
local_size_x
=
8
,
local_size_y
=
8
,
local_size_z
=
1
)
in
;
/* clang-format on */
#ifdef USE_25_SAMPLES
#ifdef USE_25_SAMPLES
const
int
kernel_size
=
13
;
const
int
kernel_size
=
13
;
...
@@ -105,7 +100,6 @@ layout(push_constant, binding = 1, std430) uniform Params {
...
@@ -105,7 +100,6 @@ layout(push_constant, binding = 1, std430) uniform Params {
float
depth_scale
;
float
depth_scale
;
uint
pad
[
3
];
uint
pad
[
3
];
}
}
params
;
params
;
layout
(
set
=
0
,
binding
=
0
)
uniform
sampler2D
source_image
;
layout
(
set
=
0
,
binding
=
0
)
uniform
sampler2D
source_image
;
...
...
servers/rendering/rasterizer_rd/shaders/tonemap.glsl
View file @
b5d0f2a8
/* clang-format off */
#[vertex]
[
vertex
]
#version 450
#version 450
VERSION_DEFINES
VERSION_DEFINES
layout
(
location
=
0
)
out
vec2
uv_interp
;
layout
(
location
=
0
)
out
vec2
uv_interp
;
/* clang-format on */
void
main
()
{
void
main
()
{
vec2
base_arr
[
4
]
=
vec2
[](
vec2
(
0
.
0
,
0
.
0
),
vec2
(
0
.
0
,
1
.
0
),
vec2
(
1
.
0
,
1
.
0
),
vec2
(
1
.
0
,
0
.
0
));
vec2
base_arr
[
4
]
=
vec2
[](
vec2
(
0
.
0
,
0
.
0
),
vec2
(
0
.
0
,
1
.
0
),
vec2
(
1
.
0
,
1
.
0
),
vec2
(
1
.
0
,
0
.
0
));
...
@@ -14,15 +12,13 @@ void main() {
...
@@ -14,15 +12,13 @@ void main() {
gl_Position
=
vec4
(
uv_interp
*
2
.
0
-
1
.
0
,
0
.
0
,
1
.
0
);
gl_Position
=
vec4
(
uv_interp
*
2
.
0
-
1
.
0
,
0
.
0
,
1
.
0
);
}
}
/* clang-format off */
#[fragment]
[
fragment
]
#version 450
#version 450
VERSION_DEFINES
VERSION_DEFINES
layout
(
location
=
0
)
in
vec2
uv_interp
;
layout
(
location
=
0
)
in
vec2
uv_interp
;
/* clang-format on */
layout
(
set
=
0
,
binding
=
0
)
uniform
sampler2D
source_color
;
layout
(
set
=
0
,
binding
=
0
)
uniform
sampler2D
source_color
;
layout
(
set
=
1
,
binding
=
0
)
uniform
sampler2D
source_auto_exposure
;
layout
(
set
=
1
,
binding
=
0
)
uniform
sampler2D
source_auto_exposure
;
...
@@ -52,7 +48,6 @@ layout(push_constant, binding = 1, std430) uniform Params {
...
@@ -52,7 +48,6 @@ layout(push_constant, binding = 1, std430) uniform Params {
bool
use_fxaa
;
bool
use_fxaa
;
uint
pad
;
uint
pad
;
}
}
params
;
params
;
layout
(
location
=
0
)
out
vec4
frag_color
;
layout
(
location
=
0
)
out
vec4
frag_color
;
...
@@ -297,10 +292,11 @@ vec3 do_fxaa(vec3 color, float exposure, vec2 uv_interp) {
...
@@ -297,10 +292,11 @@ vec3 do_fxaa(vec3 color, float exposure, vec2 uv_interp) {
textureLod
(
source_color
,
uv_interp
+
dir
*
0
.
5
,
0
.
0
).
xyz
*
exposure
);
textureLod
(
source_color
,
uv_interp
+
dir
*
0
.
5
,
0
.
0
).
xyz
*
exposure
);
float
lumaB
=
dot
(
rgbB
,
luma
);
float
lumaB
=
dot
(
rgbB
,
luma
);
if
((
lumaB
<
lumaMin
)
||
(
lumaB
>
lumaMax
))
if
((
lumaB
<
lumaMin
)
||
(
lumaB
>
lumaMax
))
{
return
rgbA
;
return
rgbA
;
else
}
else
{
return
rgbB
;
return
rgbB
;
}
}
}
void
main
()
{
void
main
()
{
...
...
servers/rendering/rendering_device_binds.cpp
View file @
b5d0f2a8
...
@@ -41,7 +41,7 @@ Error RDShaderFile::parse_versions_from_text(const String &p_text, const String
...
@@ -41,7 +41,7 @@ Error RDShaderFile::parse_versions_from_text(const String &p_text, const String
"fragment"
,
"fragment"
,
"tesselation_control"
,
"tesselation_control"
,
"tesselation_evaluation"
,
"tesselation_evaluation"
,
"compute"
"compute"
,
};
};
String
stage_code
[
RD
::
SHADER_STAGE_MAX
];
String
stage_code
[
RD
::
SHADER_STAGE_MAX
];
int
stages_found
=
0
;
int
stages_found
=
0
;
...
@@ -55,14 +55,11 @@ Error RDShaderFile::parse_versions_from_text(const String &p_text, const String
...
@@ -55,14 +55,11 @@ Error RDShaderFile::parse_versions_from_text(const String &p_text, const String
{
{
String
ls
=
line
.
strip_edges
();
String
ls
=
line
.
strip_edges
();
if
(
ls
.
begins_with
(
"#["
))
{
//workaround for clang format
if
(
ls
.
begins_with
(
"#["
)
&&
ls
.
ends_with
(
"]"
))
{
ls
=
ls
.
replace_first
(
"#["
,
"["
);
String
section
=
ls
.
substr
(
2
,
ls
.
length
()
-
3
).
strip_edges
();
}
if
(
ls
.
begins_with
(
"["
)
&&
ls
.
ends_with
(
"]"
))
{
String
section
=
ls
.
substr
(
1
,
ls
.
length
()
-
2
).
strip_edges
();
if
(
section
==
"versions"
)
{
if
(
section
==
"versions"
)
{
if
(
stages_found
)
{
if
(
stages_found
)
{
base_error
=
"Invalid shader file,
[version
] must be the first section found."
;
base_error
=
"Invalid shader file,
#[versions
] must be the first section found."
;
break
;
break
;
}
}
reading_versions
=
true
;
reading_versions
=
true
;
...
@@ -102,22 +99,27 @@ Error RDShaderFile::parse_versions_from_text(const String &p_text, const String
...
@@ -102,22 +99,27 @@ Error RDShaderFile::parse_versions_from_text(const String &p_text, const String
if
(
reading_versions
)
{
if
(
reading_versions
)
{
String
l
=
line
.
strip_edges
();
String
l
=
line
.
strip_edges
();
if
(
l
!=
""
)
{
if
(
l
!=
""
)
{
int
eqpos
=
l
.
find
(
"="
);
if
(
l
.
find
(
"="
)
==
-
1
)
{
if
(
eqpos
==
-
1
)
{
base_error
=
"Missing `=` in '"
+
l
+
"'. Version syntax is `version =
\"
<defines with C escaping>
\"
;`."
;
base_error
=
"Version syntax is version=
\"
<defines with C escaping>
\"
."
;
break
;
}
if
(
l
.
find
(
";"
)
!=
-
1
)
{
// We don't require a semicolon per se, but it's needed for clang-format to handle things properly.
base_error
=
"Missing `;` in '"
+
l
+
"'. Version syntax is `version =
\"
<defines with C escaping>
\"
;`."
;
break
;
break
;
}
}
String
version
=
l
.
get_slice
(
"="
,
0
).
strip_edges
();
Vector
<
String
>
slices
=
l
.
get_slice
(
";"
,
0
).
split
(
"="
);
String
version
=
slices
[
0
].
strip_edges
();
if
(
!
version
.
is_valid_identifier
())
{
if
(
!
version
.
is_valid_identifier
())
{
base_error
=
"Version names must be valid identifiers, found '"
+
version
+
"' instead."
;
base_error
=
"Version names must be valid identifiers, found '"
+
version
+
"' instead."
;
break
;
break
;
}
}
String
define
=
l
.
get_slice
(
"="
,
1
)
.
strip_edges
();
String
define
=
slices
[
1
]
.
strip_edges
();
if
(
!
define
.
begins_with
(
"
\"
"
)
||
!
define
.
ends_with
(
"
\"
"
))
{
if
(
!
define
.
begins_with
(
"
\"
"
)
||
!
define
.
ends_with
(
"
\"
"
))
{
base_error
=
"Version text must be quoted using
\"\"
, instead found '"
+
define
+
"'."
;
base_error
=
"Version text must be quoted using
\"\"
, instead found '"
+
define
+
"'."
;
break
;
break
;
}
}
define
=
"
\n
"
+
define
.
substr
(
1
,
define
.
length
()
-
2
).
c_unescape
()
+
"
\n
"
;
//
add newline before and after jsut in case
define
=
"
\n
"
+
define
.
substr
(
1
,
define
.
length
()
-
2
).
c_unescape
()
+
"
\n
"
;
//
Add newline before and after just in case.
version_texts
[
version
]
=
define
+
"
\n
"
+
p_defines
;
version_texts
[
version
]
=
define
+
"
\n
"
+
p_defines
;
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment