summaryrefslogtreecommitdiff
path: root/drivers
AgeCommit message (Collapse)Author
2022-10-11Merge pull request #66102 from MJacred/feature/getvideoadapterdriverinfoRémi Verschelde
Fetch video adapter driver name and version from OS
2022-10-11Fetch video adapter driver name and version from OS on Linux/*BSD and WindowsMJacred
2022-10-11Cleanup unused defines in platform codeRémi Verschelde
2022-10-11Merge pull request #67000 from RandomShaper/split_render_furtherRémi Verschelde
Polish rendering driver refactor further
2022-10-10SCons: Re-enable treating `#warning` as error with `werror`Rémi Verschelde
Replace all TODO uses of `#warning` by proper TODO comments, and will open matching bug reports to keep track of them. We don't have a great track record fixing TODOs, but I'd wager we're even worse for fixing these "TODO #warning" so we should prohibit this usage.
2022-10-10SCons: Cleanup GCC warnings configurationRémi Verschelde
- Outright disable spammy warnings due to past or present GCC bugs: * `-Wno-strict-overflow` for GCC 7. * `-Wno-type-limits` for GCC before 11 (regressed in 9/10, might work in earlier releases but at this stage we don't care). * `-Wno-return-type` for GCC 12/13 (regression, still not fixed). - Enable extra warnings conditionally when broken on earlier GCC: * `-Wnoexcept` was removed due to an upstream regression in GCC 9, could be re-enabled (but commented out for now as we actually have `-Wnoexcept` warnings to fix. * `-Wlogical-op` was broken on our variadic templates before GCC 11, now seems fine.
2022-10-07Allow clearing backbuffer after finishing CanvasGroupclayjohn
This avoids an issue where having multiple CanvasGroups overlap would create a weird artifact
2022-10-07Fix MSVC warnings, rename shadowed variables, fix uninitialized values, ↵bruvzg
change warnings=all to use /W4.
2022-10-06Polish rendering driver refactor furtherPedro J. Estébanez
Mainly: - Make `max_descriptors_per_pool` project setting Vulkan-specific. - Use a common, render driver agnostic magic FourCC for shader binary data. - Downgrade spirv_reflect to Vulkan-only dependency. - Add a `RENDER_DRIVER_*` macro to GLSL shader code for per-driver customizations.
2022-10-06Use a giant UBO to optimize performance in 2Dclayjohn
This removes the countless small UBO writes we had before and replaces them with a single large write per render pass. This results in much faster rendering on low-end devices but improves speed on all devices.
2022-10-06Merge pull request #66965 from bruvzg/win_llvmRémi Verschelde
[Windows] Fix LLVM MinGW build.
2022-10-06Merge pull request #64815 from RandomShaper/default_cpu_countRémi Verschelde
Improve default `OS`'s CPU count getter
2022-10-06[Windows] Fix LLVM MinGW build.bruvzg
2022-10-05Keep a single, portable implementation of `OS::get_processor_count()`Pedro J. Estébanez
2022-10-05Merge pull request #66720 from qarmin/unintialized_memoryRémi Verschelde
Remove usage of unitialized variables
2022-10-05Merge pull request #64819 from RandomShaper/enhance_thread_funcsRémi Verschelde
Enhance portability of threading
2022-10-05Merge pull request #66898 from aaronfranke/proj-mat-columnsRémi Verschelde
Rename Projection `matrix` to `columns`
2022-10-05Adding getters to RenderTarget and implementing override functionality for XRBastiaan Olij
2022-10-04Rename Projection `matrix` to `columns`Aaron Franke
2022-10-04Vulkan: Initialize VK_EXT_debug_utils only for dev build or verbose modeRémi Verschelde
End users would get spammed with messages of varying verbosity due to the mess that thirdparty layers/extensions and drivers seem to leave in their wake, making the Windows registry a bottomless pit of broken layer JSON. I'm all for helping end users clean up mess in their registry / system paths for Vulkan ICDs, layers and extensions, but the way this is done by VK_EXT_debug_utils is just horrible - and the way for them to fix it (manual edit of system files) is also not a good thing to recommend. Closes countless issues where users think Godot is broken because it reports weird errors.
2022-10-04Enhance portability of threadingPedro J. Estébanez
2022-10-04Merge pull request #65822 from BastiaanOlij/more_reorg_20220915Rémi Verschelde
Move cluster builder, sdfgi and gi structures to clustered renderer, and more
2022-10-04Merge pull request #66858 from clayjohn/GLES3-pix-sizeRémi Verschelde
Properly expose TEXTURE_PIXEL_SIZE in Opengl3 renderer
2022-10-04Merge pull request #66807 from ↵Rémi Verschelde
akien-mga/core-unix-remove-NO_FCNTL-and-NO_STATVFS Unix: Remove now unnecessary I/O defines, cleanup
2022-10-03Properly expose TEXTURE_PIXEL_SIZE in Opengl3 rendererclayjohn
2022-10-04Move cluster builder, sdfgi and gi structures to clustered renderer, move ↵Bastiaan Olij
light and probe elements into storage and reorganise our render_scene method.
2022-10-03Unix: Remove now unnecessary I/O defines, cleanupRémi Verschelde
- `LIBC_FILEIO_ENABLED` wasn't defined anywhere, even in _other platforms_. - `NO_NETWORK` is also never defined. It probably isn't enough anyway to disable network APIs in the current codebase. - `UNIX_SOCKET_UNAVAILABLE` is never defined in this code but used by some other platforms, clarify that. - `NO_STATVFS` can be removed as Android supports it since API level 19, which is our current min SDK level. It's also only used for `DirAccessUnix::get_space_left()` which is anyway overridden by `DirAccessJAndroid::get_space_left()` so it shouldn't make a difference. * Fixed documentation for `DirAccess.get_space_left()`. - `NO_FCNTL` is likely also a remnant of early Android days, in current NDK r23 it seems to be available. Also cleaned up unused `fcntl.h` includes. - `NO_ALLOCA` is never defined, and we use alloca in many places now.
2022-10-03Remove NO_THREADS fallback code, Godot 4 requires thread supportRémi Verschelde
This also removes `OS::can_use_threads` from the public API since it's always true.
2022-10-01Remove usage of unitialized variablesRafał Mikrut
2022-09-30Merge pull request #66660 from Sauermann/fix-never-happening-error-conditionRémi Verschelde
Remove ERR_FAIL_COND that never happens in _draw_sky
2022-09-30Fix typos with codespellRémi Verschelde
Using codespell 2.3-dev from current git. And fix typo in `methods.py` for `vsproj=yes` option (still won't work though).
2022-09-30Remove ERR_FAIL_COND that never happens in _draw_skyMarkus Sauermann
In the conditional `sky` is always true.
2022-09-30Merge pull request #66638 from timothyqiu/rendering-nullRémi Verschelde
Add various null checks in RenderingServer
2022-09-30Merge pull request #66626 from danboo/fix-typo-run-debug-collisonsRémi Verschelde
Fix typos - "collison" -> "collision"
2022-09-30Add various null checks in RenderingServerHaoyu Qiu
2022-09-29Fix typo - "collison" -> "collision"danboo
2022-09-29Merge pull request #66583 from bruvzg/constexprRémi Verschelde
Use `constexpr` in the conditions with template parameters and `sizeof`s to suppress C4127 warnings.
2022-09-29Merge pull request #66565 from clayjohn/canvas-lightsRémi Verschelde
Clean up canvas light shader API.
2022-09-29Use `constexpr` in the conditions with template parameters and `sizeof`s to ↵bruvzg
suppress C4127 warnings.
2022-09-28Clean up canvas light shader API.clayjohn
Expose LIGHT_ENERGY and LIGHT_IS_DIRECTIONAL. Add LIGHT_DIRECTION
2022-09-28Fix MSVC warnings C4701 and C4703: Potentially uninitialized variable usedRémi Verschelde
2022-09-26Fix DirAccessWindows::make_dir() choking on ".."nikitalita
`CreateDirectoryW()` chokes on absolute paths that contain `..` example: "C:\\workspace\\..\\games\\assets" Simplifying the path before creating the dir fixes this.
2022-09-23SCons: Cleanup `DEBUG`, `_DEBUG` and `NDEBUG` definesRémi Verschelde
- `_DEBUG` is MSVC specific so it didn't make much sense to define for Android and iOS builds. - iOS was the only platform to define `DEBUG`. We don't use it anywhere outside thirdparty code, which we usually don't intend to debug, so it seems better to be consistent with other platforms. - Consistently define `NDEBUG` to disable assert behavior in both `release` and `release_debug` targets. This used to be set for `release` for all platforms, and `release_debug` for Android and iOS only. - Due to the above, I removed the only use we made of `assert()` in Godot code, which was only implemented for Unix anyway, should have been `DEV_ENABLED`, and is in PoolAllocator which we don't actually use. - The denoise and recast modules keep defining `NDEBUG` even for the `debug` target as we don't want OIDN and Embree asserting all over the place.
2022-09-20Merge pull request #63594 from Faless/img/4.x_loader_extRémi Verschelde
[Core] Make ImageFormatLoader extensible.
2022-09-20Merge pull request #65541 from clayjohn/renderer-settingRémi Verschelde
Split rendering driver project setting into renderer_name and rendering_driver
2022-09-20[Core] Make ImageFormatLoader extensible.Fabio Alessandrelli
2022-09-19Merge pull request #66065 from kidinashell/issue-59488Rémi Verschelde
SpotLight3D's and OmniLight3D's Projector doesn't work
2022-09-19Split rendering driver project setting into renderer_name and ↵clayjohn
rendering_driver. To differentiate between a driver (e.g. Vulkan or D3D12) and a renderer (e.g. clustered or mobile renderer).
2022-09-19Fix Vulkan: SpotLight3D's and OmniLight3D's Projector doesn't workTobias Widner
2022-09-19Replace File/Directory with FileAccess/DirAccesskobewi