clayjohn
04a9933f2e
Mark fma function as high end so it isn't used with the gl_compatibility renderer
2023-02-08 12:56:15 -08:00
Rémi Verschelde
9caf691c89
Merge pull request #72494 from Chaosus/shader_fix_const_init
...
Fix shader failure when using non-const initializer on a constant
2023-02-02 21:05:27 +01:00
Rémi Verschelde
e52213e2fa
More codespell fixes, do more changes from previous ignore list
2023-02-01 12:11:36 +01:00
Yuri Rubinsky
e034d5f764
Fix shader failure when using non-const initializer on a constant
2023-02-01 13:03:11 +03:00
clayjohn
97ed3dcf71
Add a shader error when trying to using hint_normal_roughness_texture in the gl_compatibility renderer
2023-01-30 09:04:34 -08:00
Rémi Verschelde
3cacc83526
Merge pull request #72138 from clayjohn/GL-globals
...
Properly append global uniform buffer name in gl_compatibility shaders
2023-01-26 22:52:42 +01:00
Rémi Verschelde
b2164ee75b
Merge pull request #72109 from Chaosus/shader_derivative
...
Add derivative functions with precision to shaders
2023-01-26 22:51:54 +01:00
clayjohn
eefddb07bc
Properly append global uniform buffer name in gl_compatibility shaders
...
Also error when using instance uniforms
2023-01-26 12:14:45 -08:00
Yuri Rubinsky
8c8c333bf2
Add derivative functions with precision to shaders
2023-01-26 20:53:46 +03:00
bitsawer
6f5598979f
Several shader preprocessor parser fixes and improvements
2023-01-26 14:57:23 +02:00
Yuri Rubinsky
a6eb6b6b55
Fix array of token names in the shader parser
2023-01-25 18:18:07 +03:00
PrecisionRender
d9698f0e6f
Fix type in hint when using removed built-in textures
2023-01-20 22:06:51 -06:00
clayjohn
921f99f9e3
Decrement texture_binding count when using screen textures
2023-01-20 12:48:13 -08:00
clayjohn
faea9f5c10
Remove SCREEN_TEXTURE, DEPTH_TEXTURE, and NORMAL_ROUGHNESS_TEXTURE
...
in favour of texture hints
2023-01-18 19:52:47 -08:00
Rémi Verschelde
d95794ec8a
One Copyright Update to rule them all
...
As many open source projects have started doing it, we're removing the
current year from the copyright notice, so that we don't need to bump
it every year.
It seems like only the first year of publication is technically
relevant for copyright notices, and even that seems to be something
that many companies stopped listing altogether (in a version controlled
codebase, the commits are a much better source of date of publication
than a hardcoded copyright statement).
We also now list Godot Engine contributors first as we're collectively
the current maintainers of the project, and we clarify that the
"exclusive" copyright of the co-founders covers the timespan before
opensourcing (their further contributions are included as part of Godot
Engine contributors).
Also fixed "cf." Frenchism - it's meant as "refer to / see".
2023-01-05 13:25:55 +01:00
Yuri Rubinsky
f28348fc5c
Fix shader crash when using boolean type for vertex->fragment varyings
2022-12-23 07:47:49 +03:00
Yuri Rubinsky
522d4243bf
Add missing != operator to StringName
2022-12-20 17:25:54 +03:00
Rémi Verschelde
5d20dccade
Add MAKE_RESOURCE_TYPE_HINT macro to simplify binding arrays of resources
2022-11-24 14:06:00 +01:00
Rémi Verschelde
cb1826deae
Shader: Set proper resource type hints for sampler uniforms
...
Supersedes #64383 .
2022-11-22 15:38:52 +01:00
Markus Sauermann
28af870750
Code simplifications found by cppcheck
...
They are based on:
- Boolean arithmetic simplifications
- setting variables that are not accessed
- constant variables
2022-11-21 08:43:36 +01:00
Lily Garcia
0683bc3783
Fix global uniforms parsed as instance uniform
2022-11-17 17:18:20 -05:00
Rémi Verschelde
a6a6af32e2
Merge pull request #68718 from dzil123/fix_fog_shader_buffer_overflow
...
Fix shader compiler asan out of bounds
2022-11-16 09:23:16 +01:00
Yuri Rubinsky
5693286e90
Mark shader built-ins as used when passed to functions as out parameter
2022-11-15 22:06:16 +03:00
dzil123
6f0cd8072f
Fix Fog shader buffer overflow
2022-11-15 06:51:48 -08:00
Markus Sauermann
3b14f0334c
Remove redundant Variant-types initializations
2022-11-14 19:35:19 +01:00
Yuri Rubinsky
c07d13182c
Some fixes for instance shader parameters
2022-11-09 21:20:11 +03:00
Yuri Rubinsky
0a85d3b0cc
Fix predefined constants to be accessible in the shader includes
2022-11-01 19:53:05 +03:00
Yuri Rubinsky
926d4ebb28
Fix editor crash when assigning some uniform hints to the textures
2022-10-16 19:55:08 +03:00
Rémi Verschelde
e5857bd6c7
Merge pull request #66548 from akien-mga/msvc-warnings-c4701-c4703
...
Fix MSVC warnings C4701 and C4703: Potentially uninitialized variable used
2022-09-28 20:47:50 +02:00
Rémi Verschelde
85fe6ecc32
Fix MSVC warnings C4701 and C4703: Potentially uninitialized variable used
2022-09-28 17:05:34 +02:00
Rémi Verschelde
7ab01450cf
Fix MSVC warning C4702: unreachable code
...
Part of #66537 .
2022-09-28 16:46:48 +02:00
Yuri Rubinsky
e4a8646c19
Prevent duplicated hints in shader uniform completion
2022-09-11 15:21:43 +03:00
Yuri Rubinsky
47145800a6
Remove shader_type
from completion (when it does not need any more)
2022-09-07 16:19:36 +03:00
Yuri Rubinsky
d4a10e7e04
Allow using integer varyings with flat
interpolation modifier
2022-08-25 13:21:02 +03:00
Max Hilbrunner
019d6584ee
Merge pull request #64167 from clayjohn/screen-texture-hint
...
Add shader uniform hints for screen textures
2022-08-19 21:51:39 +02:00
Yuri Rubinsky
f2a6168414
Merge pull request #64310 from Chaosus/shader_texture_funcs
2022-08-12 21:28:22 +03:00
Yuri Rubinsky
e21aad968d
Add textureQueryLod/Levels
functions to the shader language
2022-08-12 20:44:57 +03:00
Yuri Rubinsky
7822fbc9e2
Add textureProjGrad
function to the shader language
2022-08-12 12:01:37 +03:00
clayjohn
028ef2edc8
Add shader uniform hints for screen textures so users can specify custom filter and repeat modes.
...
At this time, it works best in the Vulkan Renderers as they support using multiple samplers with the same texture.
In GLES3 this feature really only allows you to use the screen texture without mipmaps if you want to save the cost of generating them.
2022-08-09 12:29:49 -04:00
Rémi Verschelde
f754dd20be
Merge pull request #62454 from Geometror/reflect-refract-vec2-vec4
...
Allow for vec2/vec4 to be used in reflect and refract
2022-08-07 19:16:05 +02:00
Hendrik Brucker
b8d5f4bdd5
Allow vec2 and vec4 for reflect and refract
2022-08-07 18:03:16 +02:00
Yuri Rubinsky
988041b74c
Merge pull request #63847 from Zylann/shader_switch_uint
2022-08-03 08:05:19 +03:00
Marc Gilleron
779a5cd34a
Allow shading language to use switch
statement with uints
2022-08-02 23:08:41 +01:00
Hugo Locurcio
813f6a5d57
Add hint_transparent
to use a transparent black placeholder texture
...
This can be used in shaders to avoid the need to supply a transparent
placeholder texture manually.
2022-08-01 23:38:06 +02:00
Hugo Locurcio
4b42379c8f
Rename RenderingServer global shader uniform methods to be more explicit
...
The `global_shader_uniform` name is longer, but it makes it much
easier to find the methods when searching in the class reference.
2022-07-28 18:46:59 +02:00
Yuri Rubinsky
2dc59a3eea
Fix incorrect conversion of default value for mat4 uniform in shaders
2022-07-27 09:06:18 +03:00
Yuri Rubinsky
886c2d9681
Implement shader uniform groups/subgroups
2022-07-26 11:26:09 +03:00
Rémi Verschelde
49b0aa93e3
Merge pull request #63424 from Chaosus/shader_preprocessor_inc_fix
2022-07-25 14:56:06 +02:00
Yuri Rubinsky
be3fb7a216
Fix errors when using built-ins in shaderinc
2022-07-25 12:33:04 +03:00
reduz
455c06ecd4
Implement Vector4, Vector4i, Projection
...
Implement built-in classes Vector4, Vector4i and Projection.
* Two versions of Vector4 (float and integer).
* A Projection class, which is a 4x4 matrix specialized in projection types.
These types have been requested for a long time, but given they were very corner case they were not added before.
Because in Godot 4, reimplementing parts of the rendering engine is now possible, access to these types (heavily used by the rendering code) becomes a necessity.
**Q**: Why Projection and not Matrix4?
**A**: Godot does not use Matrix2, Matrix3, Matrix4x3, etc. naming convention because, within the engine, these types always have a *purpose*. As such, Godot names them: Transform2D, Transform3D or Basis. In this case, this 4x4 matrix is _always_ used as a _Projection_, hence the naming.
2022-07-23 14:00:01 +02:00