-
-
Notifications
You must be signed in to change notification settings - Fork 21.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add initial Vulkan support, master branch goes UNSTABLE #36098
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
-Added VulkanContext -Added an X11 implementation -Added a rendering device abstraction -added a Vulkan rendering device abstraction -Engine does not work, only shows Godot logo (run it from bin/)
* Implements a growing chunked allocator * Removed redudant methods get and getptr, only getornull is supported now.
-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
This should make it easier to obtain the data directly from an Image
…here. Removes antialiased flag for draw_* methods.
They should now allocate memory in blocks and reuse the same memory every time the item is cleared and redrawn. This should improve performance considerably.
Added support for Sprite, AnimatedSprite and Polygon2D (should add for tileset eventually).
Modified polygon management to make it more compatible with MoltenVK
…move GLSLang out.
Also, optimized shader compilation to happen on threads.
…(likely deleted texture)
Initial Vulkan support for Windows. Initial Vulkan support for macOS.
Initial Vulkan support for macOS (MoltenVK) and Windows
[Vulkan] Fix shader crash if using multiple underscores in identifiers
- `vk_enum_string_helper.h` is a generated file taken from the SDK (Vulkan-ValidationLayers). - `vk_mem_alloc.h` is a library from GPUOpen: https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator
AndreaCatania
approved these changes
Feb 11, 2020
@akien-mga Could you guys please make an announcement when the new vulkan features are stable enough for "preview" use? I would love to dogfood it, provided that the API's are not expected to be completely rewritten |
There will be an announcement on the blog when we release the first alpha build (and all subsequent builds). |
83 tasks
akien-mga
added a commit
that referenced
this pull request
Feb 8, 2023
It's been 3 years since the release of Godot 3.2 and the start of the major overhaul of the codebase for Godot 4.0. And the work on that new version had started even 6 months before with Juan working on the Vulkan renderer and various core changes in a feature branch. This got merged in #36098 on Feb 11, 2020, oh well, we 3 days early ;) Close to 15,000 pull requests have been merged for the 4.0 milestone, which is half of the total amount of PRs in Godot's open source lifetime. This is our biggest release by far, and it's finally time to let it loose. A huge thankyou to all the contributors who were involved over the years, with contributions of any kind. Now's the final stretch to iron out the remaining blocking bugs and release 4.0-stable.
Streq
pushed a commit
to Streq/godot
that referenced
this pull request
Feb 9, 2023
It's been 3 years since the release of Godot 3.2 and the start of the major overhaul of the codebase for Godot 4.0. And the work on that new version had started even 6 months before with Juan working on the Vulkan renderer and various core changes in a feature branch. This got merged in godotengine#36098 on Feb 11, 2020, oh well, we 3 days early ;) Close to 15,000 pull requests have been merged for the 4.0 milestone, which is half of the total amount of PRs in Godot's open source lifetime. This is our biggest release by far, and it's finally time to let it loose. A huge thankyou to all the contributors who were involved over the years, with contributions of any kind. Now's the final stretch to iron out the remaining blocking bugs and release 4.0-stable.
JeffVenancius
pushed a commit
to JeffVenancius/godot
that referenced
this pull request
Mar 3, 2023
It's been 3 years since the release of Godot 3.2 and the start of the major overhaul of the codebase for Godot 4.0. And the work on that new version had started even 6 months before with Juan working on the Vulkan renderer and various core changes in a feature branch. This got merged in godotengine#36098 on Feb 11, 2020, oh well, we 3 days early ;) Close to 15,000 pull requests have been merged for the 4.0 milestone, which is half of the total amount of PRs in Godot's open source lifetime. This is our biggest release by far, and it's finally time to let it loose. A huge thankyou to all the contributors who were involved over the years, with contributions of any kind. Now's the final stretch to iron out the remaining blocking bugs and release 4.0-stable.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The
vulkan
branch has served us well, seeing parallel development tomaster
for over 8 months while Godot 3.2 was in development.To go full steam ahead towards Godot 4.0, it's now time to merge the WIP Vulkan port in the
master
branch, so that we can start doing the heavy refactoring work which is necessary for many 4.0 features (Vulkan, GDScript improvements, C++14 port, streamlined node naming, etc.).IMPORTANT: The
master
branch is now unstable, and will be so for a few months until we reach the alpha stage. It is NOT meant for use in production, and if you want a stable branch to do custom development, you can use3.2
. Note however that, unless exception is given, we do not accept new features PR'ed directly to the3.2
branch. Feature work needs to happen inmaster
before it can be cherry-picked (or manually backported) to any stable branch.We encourage contributors to refrain from doing extensive feature work during the transition period where @reduz will rework many of the engine's internals, and the rest of us will port the whole codebase to C++14. Trying to get features merged in this turmoil will likely result in rebase hell and frustration :)
After this merge and subsequent refactoring work, most unmerged PRs will also get merge conflicts which will not be trivial to solve. Once the initial refactoring pass has been done, we plan to address this by closing all older PRs (minus a few 3.2-focused exceptions), and asking their authors to re-do them if relevant, rebased on the current
master
branch. We apologize in advance for the extra work that we'll ask of everyone, but this is the sanest way forward to avoid being dragged down by 500 PRs worth of unmergeable conflicts. More about this in an upcoming blog post. Edit: https://godotengine.org/article/headsup-vulkan-merged-master-branch-unstable