summaryrefslogtreecommitdiff
path: root/drivers/gles3/rasterizer_storage_gles3.cpp
AgeCommit message (Collapse)Author
2022-02-25Implement distance fade properties in OmniLight3D and SpotLight3DHugo Locurcio
This can be used to fade lights and their shadows in the distance, similar to Decal nodes. This can bring significant performance improvements, especially for lights with shadows enabled and when using higher-than-default shadow quality settings. While lights can be smoothly faded out over distance, shadows are currently "all or nothing" since per-light shadow color is no longer customizable in the Vulkan renderer. This may result in noticeable pop-in when leaving the shadow cutoff distance, but depending on the scene, it may not always be that noticeable.
2022-02-16Style: Cleanup single-line blocks, semicolons, dead codeRémi Verschelde
Remove currently unused implementation of TextureBasisU, could be re-added later on if needed and ported.
2022-02-15Add Particle Shader Userdatareduz
* Adds optional vec4 USERDATA1 .. USERDATA6 to particles, allowing to store custom data. * This data is allocated on demand, so shaders that do not use it do not cost more.
2022-01-29simplify formatting scripts, add a clang-tidy script, and run clang-tidyNathan Franke
2022-01-14Remove support for PVRTC texture encoding and decodingHugo Locurcio
On the only platform where PVRTC is supported (iOS), ETC2 generally supersedes PVRTC in every possible way. The increased memory usage is not really a problem thanks to modern iOS' devices processing power being higher than its Android counterparts.
2022-01-11New OpenGL batching canvas rendererclayjohn
2022-01-11WIP New GLES3 Shader Compilerreduz
Uses versions and specializations (more similar to RenderingDevice version)
2022-01-04Merge pull request #55790 from Calinou/renderingserver-add-device-type-getterRémi Verschelde
Add `RenderingServer.get_video_adapter_type()` method
2022-01-04Merge pull request #56305 from Calinou/rename-lod-thresholdRémi Verschelde
2022-01-03Update copyright statements to 2022Rémi Verschelde
Happy new year to the wonderful Godot community!
2021-12-29Rename Lod Threshold to Mesh Lod ThresholdHugo Locurcio
This makes it more obvious that the setting only affects mesh LOD, not manual (H)LOD achieved using visibility ranges.
2021-12-10Add `RenderingServer.get_video_adapter_type()` methodHugo Locurcio
This can be used to distinguish between integrated, dedicated, virtual and software-emulated GPUs. This in turn can be used to automatically adjust graphics settings, or warn users about features that may run slowly on their hardware.
2021-12-09Replace String comparisons with "", String() to is_empty()Nathan Franke
Also: - Adds two stress tests to test_string.h - Changes to .empty() on std::strings
2021-11-12Fix default_texture_param in shader pipeline to support uniform arraysYuri Roubinsky
2021-11-01Fix memory leak when using CurveTexture.set_texture_modeHaoyu Qiu
2021-10-31Use OpenGL 3.3 core profile instead of compatibility profileClay John
- Rename OpenGL to GLES3 in the source code per community feedback. - The renderer is still exposed as "OpenGL 3" to the user. - Hide renderer selection dropdown until OpenGL support is more mature. - The renderer can still be changed in the Project Settings or using the `--rendering-driver opengl` command line argument. - Remove commented out exporter code. - Remove some OpenGL/DisplayServer-related debugging prints.
2020-02-13Remove obsolete GLES3 backendRémi Verschelde
Due to the port to Vulkan and complete redesign of the rendering backend, the `drivers/gles3` code is no longer usable in this state and is not planned to be ported to the new architecture. The GLES2 backend is kept (while still disabled and non-working) as it will eventually be ported to serve as the low-end renderer for Godot 4.0. Some GLES3 features might be selectively ported to the updated GLES2 backend if there's a need for them, and extensions we can use for that. So long, OpenGL driver bugs!
2020-02-11Rewritten StreamTexture for better code reuse, added basis universal supportJuan Linietsky
2020-02-11Environment sky more or less working.Juan Linietsky
2020-02-11basic 2D engine is more or less working with Vulkan, including editor.Juan Linietsky
Still a lot to do
2020-02-11A lot of progress with canvas rendering, still far from working.Juan Linietsky
2020-02-11Texture refactorJuan Linietsky
-Texture renamed to Texture2D -TextureLayered as base now inherits 2Darray, cubemap and cubemap array -Removed all references to flags in textures (they will go in the shader) -Texture3D gone for now (will come back later done properly) -Create base rasterizer for RenderDevice, RasterizerRD
2020-02-11Refactored RID/RID_Owner to always use O(1) allocation.Juan Linietsky
* Implements a growing chunked allocator * Removed redudant methods get and getptr, only getornull is supported now.
2020-02-05Remove duplicate WARN_PRINT macro.Marcel Admiraal
2020-01-25Add project setting for max irradiance sizeclayjohn
2020-01-22GLES3: Fix invalid value for GL_TEXTURE_MAG_FILTER parameterRémi Verschelde
`GL_LINEAR_MIPMAP_LINEAR` can be used for `GL_TEXTURE_MIN_FILTER`, but not for `GL_TEXTURE_MAG_FILTER`. Cf. https://www.khronos.org/opengl/wiki/GLAPI/glTexParameter Fixes #35436.
2020-01-19Merge pull request #35310 from akien-mga/gles3-irradiance-small-optimizationRémi Verschelde
GLES3: Slight optimization to irradiance compute
2020-01-19GLES3: Slight optimization to irradiance computeRémi Verschelde
All the calculations leading up to `mipLevel` are only relevant for Panorama mode. Similarly, the `source_resolution` uniform is only needed for that mode.
2020-01-18reduce complexity of irradiance map generationclayjohn
2020-01-16Add multimesh format max for proper error checkingclayjohn
2020-01-12Fix light and multimesh crashesclayjohn
2020-01-06Add VisualServer methods to get the video adapter name and vendorHugo Locurcio
These methods can be used in scripts to retrieve the OpenGL `GL_RENDERER` and `GL_VENDOR` strings (respectively). This closes #28404.
2020-01-01Update copyright statements to 2020Rémi Verschelde
Happy new year to the wonderful Godot community! We're starting a new decade with a well-established, non-profit, free and open source game engine, and tons of further improvements in the pipeline from hundreds of contributors. Godot will keep getting better, and we're looking forward to all the games that the community will keep developing and releasing with it.
2019-12-28Reset GLES3 MultiMesh buffer id when reallocating.Bruno Lourenço
2019-11-27Fix radiance map generation on mobileclayjohn
2019-11-21Fix GL error by properly using float uniformclayjohn
2019-11-20Fix bugs introduced by IBL fixesclayjohn
2019-11-20Merge pull request #33668 from clayjohn/Fix_environment_mapping_issuesRémi Verschelde
Fix issues with environment mapping
2019-11-19Fix issues with environment mappingclayjohn
2019-11-19Merge pull request #33527 from clayjohn/GLES2-bufferdata_optimizationRémi Verschelde
Improve glBufferSubData usage where safe
2019-11-11Improve glBufferSubData usage where safeclayjohn
2019-11-11Add special external MSAA modes for GLES2 Rift S/Quest and OpenXR optimisationBastiaan Olij
2019-10-28Merge pull request #33104 from qarmin/fix_some_crashesRémi Verschelde
Fix some crashes and using null pointers
2019-10-28Fix some crashes and using null pointersRafał Mikrut
2019-10-25WebGL 2.0: Force decompressing non power-of-2 textures with repeat/mipmapRémi Verschelde
While OpenGL ES 3.0 and WebGL 2.0 both support non power-of-2 (NPOT) textures in their specification, the situation seems to be less clear about *compressed* NPOT textures using repeat or mipmap flags. At least Chrome on Linux doesn't seem to support this combination, and a variety of mobile hardware have similar limitations. As a workaround, we force decompressing such textures when running on WebGL 2.0, at the cost of loading time and memory usage. Fixes #33058.
2019-10-02Removed unnecessary shader error log messagesYuri Roubinsky
2019-09-23Merge pull request #32275 from godotengine/skin_supportRémi Verschelde
Added skin support and simplified APIs to override bone position + glTF 2.0 import fixes
2019-09-18Added skin support and simplified APIs to override bone position.Juan Linietsky
2019-09-06fix gles3 shader uniform vec3 error, close #30930RaphaelHunter
2019-08-25Fix hint range step for integer in shadersYuri Roubinski