Skip to content

Commit d04e811

Browse files
committed
Merge pull request godotengine#105864 from marcosc90/perf-version_get_uniform
Avoid unnecessary `version_get_uniform()` calls
2 parents ff33926 + 19540a0 commit d04e811

File tree

4 files changed

+43
-45
lines changed

4 files changed

+43
-45
lines changed

gles3_builders.py

Lines changed: 39 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -254,96 +254,96 @@ class {out_file_class} : public ShaderGLES3 {{
254254
}}
255255
256256
/* clang-format off */
257-
#define TRY_GET_UNIFORM if (version_get_uniform(p_uniform, p_version, p_variant, p_specialization) < 0) return
257+
#define TRY_GET_UNIFORM(var_name) int var_name = version_get_uniform(p_uniform, p_version, p_variant, p_specialization); if (var_name < 0) return
258258
/* clang-format on */
259259
260260
_FORCE_INLINE_ void version_set_uniform(Uniforms p_uniform, float p_value, RID p_version, ShaderVariant p_variant{defvariant}, uint64_t p_specialization = {defspec}) {{
261-
TRY_GET_UNIFORM;
262-
glUniform1f(version_get_uniform(p_uniform, p_version, p_variant, p_specialization), p_value);
261+
TRY_GET_UNIFORM(uniform_location);
262+
glUniform1f(uniform_location, p_value);
263263
}}
264264
265265
_FORCE_INLINE_ void version_set_uniform(Uniforms p_uniform, double p_value, RID p_version, ShaderVariant p_variant{defvariant}, uint64_t p_specialization = {defspec}) {{
266-
TRY_GET_UNIFORM;
267-
glUniform1f(version_get_uniform(p_uniform, p_version, p_variant, p_specialization), p_value);
266+
TRY_GET_UNIFORM(uniform_location);
267+
glUniform1f(uniform_location, p_value);
268268
}}
269269
270270
_FORCE_INLINE_ void version_set_uniform(Uniforms p_uniform, uint8_t p_value, RID p_version, ShaderVariant p_variant{defvariant}, uint64_t p_specialization = {defspec}) {{
271-
TRY_GET_UNIFORM;
272-
glUniform1ui(version_get_uniform(p_uniform, p_version, p_variant, p_specialization), p_value);
271+
TRY_GET_UNIFORM(uniform_location);
272+
glUniform1ui(uniform_location, p_value);
273273
}}
274274
275275
_FORCE_INLINE_ void version_set_uniform(Uniforms p_uniform, int8_t p_value, RID p_version, ShaderVariant p_variant{defvariant}, uint64_t p_specialization = {defspec}) {{
276-
TRY_GET_UNIFORM;
277-
glUniform1i(version_get_uniform(p_uniform, p_version, p_variant, p_specialization), p_value);
276+
TRY_GET_UNIFORM(uniform_location);
277+
glUniform1i(uniform_location, p_value);
278278
}}
279279
280280
_FORCE_INLINE_ void version_set_uniform(Uniforms p_uniform, uint16_t p_value, RID p_version, ShaderVariant p_variant{defvariant}, uint64_t p_specialization = {defspec}) {{
281-
TRY_GET_UNIFORM;
282-
glUniform1ui(version_get_uniform(p_uniform, p_version, p_variant, p_specialization), p_value);
281+
TRY_GET_UNIFORM(uniform_location);
282+
glUniform1ui(uniform_location, p_value);
283283
}}
284284
285285
_FORCE_INLINE_ void version_set_uniform(Uniforms p_uniform, int16_t p_value, RID p_version, ShaderVariant p_variant{defvariant}, uint64_t p_specialization = {defspec}) {{
286-
TRY_GET_UNIFORM;
287-
glUniform1i(version_get_uniform(p_uniform, p_version, p_variant, p_specialization), p_value);
286+
TRY_GET_UNIFORM(uniform_location);
287+
glUniform1i(uniform_location, p_value);
288288
}}
289289
290290
_FORCE_INLINE_ void version_set_uniform(Uniforms p_uniform, uint32_t p_value, RID p_version, ShaderVariant p_variant{defvariant}, uint64_t p_specialization = {defspec}) {{
291-
TRY_GET_UNIFORM;
292-
glUniform1ui(version_get_uniform(p_uniform, p_version, p_variant, p_specialization), p_value);
291+
TRY_GET_UNIFORM(uniform_location);
292+
glUniform1ui(uniform_location, p_value);
293293
}}
294294
295295
_FORCE_INLINE_ void version_set_uniform(Uniforms p_uniform, int32_t p_value, RID p_version, ShaderVariant p_variant{defvariant}, uint64_t p_specialization = {defspec}) {{
296-
TRY_GET_UNIFORM;
297-
glUniform1i(version_get_uniform(p_uniform, p_version, p_variant, p_specialization), p_value);
296+
TRY_GET_UNIFORM(uniform_location);
297+
glUniform1i(uniform_location, p_value);
298298
}}
299299
300300
_FORCE_INLINE_ void version_set_uniform(Uniforms p_uniform, const Color &p_color, RID p_version, ShaderVariant p_variant{defvariant}, uint64_t p_specialization = {defspec}) {{
301-
TRY_GET_UNIFORM;
301+
TRY_GET_UNIFORM(uniform_location);
302302
GLfloat col[4] = {{ p_color.r, p_color.g, p_color.b, p_color.a }};
303-
glUniform4fv(version_get_uniform(p_uniform, p_version, p_variant, p_specialization), 1, col);
303+
glUniform4fv(uniform_location, 1, col);
304304
}}
305305
306306
_FORCE_INLINE_ void version_set_uniform(Uniforms p_uniform, const Vector2 &p_vec2, RID p_version, ShaderVariant p_variant{defvariant}, uint64_t p_specialization = {defspec}) {{
307-
TRY_GET_UNIFORM;
307+
TRY_GET_UNIFORM(uniform_location);
308308
GLfloat vec2[2] = {{ float(p_vec2.x), float(p_vec2.y) }};
309-
glUniform2fv(version_get_uniform(p_uniform, p_version, p_variant, p_specialization), 1, vec2);
309+
glUniform2fv(uniform_location, 1, vec2);
310310
}}
311311
312312
_FORCE_INLINE_ void version_set_uniform(Uniforms p_uniform, const Size2i &p_vec2, RID p_version, ShaderVariant p_variant{defvariant}, uint64_t p_specialization = {defspec}) {{
313-
TRY_GET_UNIFORM;
313+
TRY_GET_UNIFORM(uniform_location);
314314
GLint vec2[2] = {{ GLint(p_vec2.x), GLint(p_vec2.y) }};
315-
glUniform2iv(version_get_uniform(p_uniform, p_version, p_variant, p_specialization), 1, vec2);
315+
glUniform2iv(uniform_location, 1, vec2);
316316
}}
317317
318318
_FORCE_INLINE_ void version_set_uniform(Uniforms p_uniform, const Vector3 &p_vec3, RID p_version, ShaderVariant p_variant{defvariant}, uint64_t p_specialization = {defspec}) {{
319-
TRY_GET_UNIFORM;
319+
TRY_GET_UNIFORM(uniform_location);
320320
GLfloat vec3[3] = {{ float(p_vec3.x), float(p_vec3.y), float(p_vec3.z) }};
321-
glUniform3fv(version_get_uniform(p_uniform, p_version, p_variant, p_specialization), 1, vec3);
321+
glUniform3fv(uniform_location, 1, vec3);
322322
}}
323323
324324
_FORCE_INLINE_ void version_set_uniform(Uniforms p_uniform, const Vector4 &p_vec4, RID p_version, ShaderVariant p_variant{defvariant}, uint64_t p_specialization = {defspec}) {{
325-
TRY_GET_UNIFORM;
325+
TRY_GET_UNIFORM(uniform_location);
326326
GLfloat vec4[4] = {{ float(p_vec4.x), float(p_vec4.y), float(p_vec4.z), float(p_vec4.w) }};
327-
glUniform4fv(version_get_uniform(p_uniform, p_version, p_variant, p_specialization), 1, vec4);
327+
glUniform4fv(uniform_location, 1, vec4);
328328
}}
329329
330330
_FORCE_INLINE_ void version_set_uniform(Uniforms p_uniform, float p_a, float p_b, RID p_version, ShaderVariant p_variant{defvariant}, uint64_t p_specialization = {defspec}) {{
331-
TRY_GET_UNIFORM;
332-
glUniform2f(version_get_uniform(p_uniform, p_version, p_variant, p_specialization), p_a, p_b);
331+
TRY_GET_UNIFORM(uniform_location);
332+
glUniform2f(uniform_location, p_a, p_b);
333333
}}
334334
335335
_FORCE_INLINE_ void version_set_uniform(Uniforms p_uniform, float p_a, float p_b, float p_c, RID p_version, ShaderVariant p_variant{defvariant}, uint64_t p_specialization = {defspec}) {{
336-
TRY_GET_UNIFORM;
337-
glUniform3f(version_get_uniform(p_uniform, p_version, p_variant, p_specialization), p_a, p_b, p_c);
336+
TRY_GET_UNIFORM(uniform_location);
337+
glUniform3f(uniform_location, p_a, p_b, p_c);
338338
}}
339339
340340
_FORCE_INLINE_ void version_set_uniform(Uniforms p_uniform, float p_a, float p_b, float p_c, float p_d, RID p_version, ShaderVariant p_variant{defvariant}, uint64_t p_specialization = {defspec}) {{
341-
TRY_GET_UNIFORM;
342-
glUniform4f(version_get_uniform(p_uniform, p_version, p_variant, p_specialization), p_a, p_b, p_c, p_d);
341+
TRY_GET_UNIFORM(uniform_location);
342+
glUniform4f(uniform_location, p_a, p_b, p_c, p_d);
343343
}}
344344
345345
_FORCE_INLINE_ void version_set_uniform(Uniforms p_uniform, const Transform3D &p_transform, RID p_version, ShaderVariant p_variant{defvariant}, uint64_t p_specialization = {defspec}) {{
346-
TRY_GET_UNIFORM;
346+
TRY_GET_UNIFORM(uniform_location);
347347
const Transform3D &tr = p_transform;
348348
349349
GLfloat matrix[16] = {{ /* build a 16x16 matrix */
@@ -365,11 +365,11 @@ class {out_file_class} : public ShaderGLES3 {{
365365
(GLfloat)1
366366
}};
367367
368-
glUniformMatrix4fv(version_get_uniform(p_uniform, p_version, p_variant, p_specialization), 1, false, matrix);
368+
glUniformMatrix4fv(uniform_location, 1, false, matrix);
369369
}}
370370
371371
_FORCE_INLINE_ void version_set_uniform(Uniforms p_uniform, const Transform2D &p_transform, RID p_version, ShaderVariant p_variant{defvariant}, uint64_t p_specialization = {defspec}) {{
372-
TRY_GET_UNIFORM;
372+
TRY_GET_UNIFORM(uniform_location);
373373
const Transform2D &tr = p_transform;
374374
375375
GLfloat matrix[16] = {{ /* build a 16x16 matrix */
@@ -391,11 +391,11 @@ class {out_file_class} : public ShaderGLES3 {{
391391
(GLfloat)1
392392
}};
393393
394-
glUniformMatrix4fv(version_get_uniform(p_uniform, p_version, p_variant, p_specialization), 1, false, matrix);
394+
glUniformMatrix4fv(uniform_location, 1, false, matrix);
395395
}}
396396
397397
_FORCE_INLINE_ void version_set_uniform(Uniforms p_uniform, const Projection &p_matrix, RID p_version, ShaderVariant p_variant{defvariant}, uint64_t p_specialization = {defspec}) {{
398-
TRY_GET_UNIFORM;
398+
TRY_GET_UNIFORM(uniform_location);
399399
GLfloat matrix[16];
400400
401401
for (int i = 0; i < 4; i++) {{
@@ -404,7 +404,7 @@ class {out_file_class} : public ShaderGLES3 {{
404404
}}
405405
}}
406406
407-
glUniformMatrix4fv(version_get_uniform(p_uniform, p_version, p_variant, p_specialization), 1, false, matrix);
407+
glUniformMatrix4fv(uniform_location, 1, false, matrix);
408408
}}
409409
410410
#undef TRY_GET_UNIFORM

tests/python_build/fixtures/gles3/vertex_fragment.out

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,13 +30,13 @@ protected:
3030
R"<!>(
3131
precision highp float;
3232
precision highp int;
33-
33+
/* clang-format on */
3434
layout(location = 0) in highp vec3 vertex;
3535

3636
out highp vec4 position_interp;
3737

3838
void main() {
39-
position_interp = vec4(vertex.x,1,0,1);
39+
position_interp = vec4(vertex.x, 1, 0, 1);
4040
}
4141

4242
)<!>"

tests/python_build/fixtures/glsl/compute.out

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ R"<!>(#[compute]
55

66
#VERSION_DEFINES
77

8-
98
#define M_PI 3.14159265359
109

1110
void main() {

tests/python_build/fixtures/glsl/vertex_fragment.out

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,8 @@ lines = "#define MODE_LINES";
1212
layout(location = 0) out vec3 uv_interp;
1313

1414
void main() {
15-
1615
#ifdef MODE_LINES
17-
uv_interp = vec3(0,0,1);
16+
uv_interp = vec3(0, 0, 1);
1817
#endif
1918
}
2019

@@ -29,7 +28,7 @@ void main() {
2928
layout(location = 0) out vec4 dst_color;
3029

3130
void main() {
32-
dst_color = vec4(1,1,0,0);
31+
dst_color = vec4(1, 1, 0, 0);
3332
}
3433
)<!>"
3534
};

0 commit comments

Comments
 (0)