Age | Commit message (Collapse) | Author |
|
Since we clone the environments to build thirdparty code, we don't get an
explicit dependency on the build objects produced by that environment.
So when we update thirdparty code, Godot code using it is not necessarily
rebuilt (I think it is for changed headers, but not for changed .c/.cpp files),
which can lead to an invalid compilation output (linking old Godot .o files
with a newer, potentially ABI breaking version of thirdparty code).
This was only seen as really problematic with bullet updates (leading to
crashes when rebuilding Godot after a bullet update without cleaning .o files),
but it's safer to fix it everywhere, even if it's a LOT of hacky boilerplate.
|
|
Uses compute shaders, which only once, on demand, and all in parallel.
|
|
Removes unused code in OS.
Fixes return types.
Fixes few typos.
|
|
"type" isn't very descriptive for exposed code, and this variable is exposed via RD_SETGET.
|
|
"type" isn't very descriptive for exposed code, and this variable is exposed via RD_SETGET.
|
|
-Changed how mesh data is organized, hoping to make it more efficient on Vulkan and GLES.
-Removed compression, it now always uses the most efficient format.
-Added support for custom arrays (up to 8 custom formats)
-Added support for 8 weights in skeleton data.
-Added a simple optional versioning system for imported assets, to reimport if binary is newer
-Fixes #43979 (I needed to test)
WARNING:
-NOT backwards compatible with previous 4.x-devel, will most likely never be, but it will force reimport scenes due to version change.
-NOT backwards compatible with 3.x scenes, this will be eventually re-added.
-Skeletons not working any longer, will fix in next PR.
|
|
Refer: https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkEnumerateInstanceExtensionProperties.html
According to the documentation, there are 2 success code:
1. VK_SUCCESS
2. VK_INCOMPLETE
VK_INCOMPLETE will be returned when not all avaiable properties are returned.
|
|
|
|
|
|
|
|
|
|
-Removed FuncRef, since Callable makes it obsolete
-Removed int_types.h as its obsolete in c++11+
-Changed color names code
|
|
Fix incorrect subpass dependency initialization
|
|
Taken from https://github.com/KhronosGroup/Vulkan-Loader/pull/475.
Supersedes and reverts #43119 since the upstream change removes the need for
that custom define.
|
|
-Allows merging several 2D objects into a single draw operation
-Use current node to clip children nodes
-Further fixes to Vulkan barriers
-Changed font texture generation to white, fixes dark eges when blurred
-Other small misc fixes to backbuffer code.
|
|
They're now disabled by default, and can be enabled with the command line
argument `--vk-layers`.
When enabled, the errors about them being missing are now warnings, as
users were confused and thought this meant Vulkan is broken for them.
Fix crash in `~VulkanContext` when validation layers are disabled (exposed by
this PR since before they could not be disabled without source modification).
Also moved VulkanContext member initializations to header.
Fixes #37102.
|
|
|
|
vulkan: Sync loader, headers and glslang to sdk-1.2.154.0
|
|
This commit moves the declaration of a local variable to ensure its
scope survives long enough; at least in some versions of GCC and LLVM
the associated memory was freed too early and thus caused issues ranging
from black screens to crashes.
|
|
-Removed normal/specular properties from nodes
-Create CanvasTexture, which can contain normal/specular channels
-Refactored, optimized and simplified 2D shaders
-Use atlas for light textures.
-Use a shadow atlas for shadow textures.
-Use both items aboves to make light rendering stateless (faster).
-Reorganized uniform sets for more efficiency.
|
|
|
|
previous patches)""
|
|
previous patches)"
|
|
|
|
Cause buffer_update to emit error if called during compute/draw list
|
|
Add a barrier to "safe" the buffer update write from previous accesses
to buffer range being updated. Remove duplicate unneed barrier.
|
|
Add additional source and dest mask bits for "from external" and "to
external" subpass dependencies (respectively) when intial and final
layouts cause implicit layout transitions.
This is a big hammer -- any transition in a given direction will create
a full barrier. Attachment specific stage and access flags could be
used instead with additional logic to deduce the prior and intended
subsequent usages.
|
|
Make pre and post barriers non-conditional on format, as there are cases
where pending operations in the GENERAL layout hazarding with clear.
|
|
Changed srcStageMask to the valid stage for post transfer barrier.
|
|
Additional synchronization fixes from hazards arising from disabling
FORCE_FULL_BARRIER.
|
|
Change the srcStageMasks and dstStageMasks for the storage texture end
draw barriers to refer to the correct stages for the use.
|
|
Add barrier for source buffer when getting. Refactor common "owner and
stage/access" code to utility function.
|
|
Added the fragment stage to the texture copy and resolve final barriers
for source and dest. As the textures could subsequently be used by the
fragment stage, this was triggering a validation error from the
pre-alpha synchronization validation.
|
|
Actually sdk-1.2.154.1 for Vulkan-Loader.
glslang is updated to bacaef3237c515e40d1a24722be48c0a0b30f75f which is the
known-good version for Vulkan-ValidationLayers 1.2.154.0.
COPYRIGHT.txt was synced with the current version of the glslang LICENSE.txt,
and `glslang/register_types.cpp` now uses the upstream definition for its
default builtin resource instead of hardcoding it.
|
|
|
|
Add error message to buffer update if a compute or draw list is active.
|
|
|
|
Add VMA to iphone platform Use linkflag for iphone building to enforce static linking. Works fine with dynamic '.framework' library
Updated xcode project to use '.a' static library
|
|
The changes from #38835 were not sufficient to fix #38829, as VkClearAttachment
still had uninitialized member structs in its VkClearColor member struct.
The struct rabbit hole goes deep and trying to do validation as done in #38829
doesn't appear realistic.
|
|
Fix may be used unitialized warnings in _render_pass_create() and _draw_list_insert_clear_region().
|
|
Fix spelling & grammar in comments, docs, and messages
|
|
|
|
|
|
uninitialized device and instance.
|
|
Move GI to a deferred pass
|
|
Supersedes and closes #38945.
|
|
and _draw_list_insert_clear_region()
|
|
Silence mulitple may be used uninitialized warnings in RenderingDeviceVulkan::uniform_set_create()
|
|
RenderingDeviceVulkan::uniform_set_create()
|
|
I couldn't find a tool that enforces it, so I went the manual route:
```
find -name "thirdparty" -prune \
-o -name "*.cpp" -o -name "*.h" -o -name "*.m" -o -name "*.mm" \
-o -name "*.glsl" > files
perl -0777 -pi -e 's/\n}\n([^#])/\n}\n\n\1/g' $(cat files)
misc/scripts/fix_style.sh -c
```
This adds a newline after all `}` on the first column, unless they
are followed by `#` (typically `#endif`). This leads to having lots
of places with two lines between function/class definitions, but
clang-format then fixes it as we enforce max one line of separation.
This doesn't fix potential occurrences of function definitions which
are indented (e.g. for a helper class defined in a .cpp), but it's
better than nothing. Also can't be made to run easily on CI/hooks so
we'll have to be careful with new code.
Part of #33027.
|