FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

feat(vk-wrapper): vulkan API wrapper by MasterLaplace · Pull Request #47 · EngineSquared/EngineSquared · GitHub

feat(vk-wrapper): vulkan API wrapper - #47

Merged
ripel2 merged 77 commits into
mainfrom
14-vulkan-pipeline-plugin
Nov 4, 2024
Merged

feat(vk-wrapper): vulkan API wrapper #47
ripel2 merged 77 commits into
mainfrom
14-vulkan-pipeline-plugin

Conversation

MasterLaplace commented Oct 29, 2024
edited
Loading

Copy link
Copy Markdown
Contributor

Related to:

In short, to draw the first triangle I made:

  • Create a VkInstance
  • Select a supported graphics card (VkPhysicalDevice)
  • Create a VkDevice and VkQueue for drawing and presentation
  • Create a window, window surface and swap chain
  • Wrap the swap chain images into VkImageView
  • Create a render pass that specifies the render targets and usage
  • Create framebuffers for the render pass
  • Set up the graphics pipeline
  • Allocate and record a command buffer with the draw commands for every possible swap chain image
  • Draw frames by acquiring images, submitting the right draw command buffer and returning the images back to the swap chain

MasterLaplace and others added 30 commits October 15, 2024 21:43
This commit adds the GLFW_NO_API hint to the window creation process in the Window resource class. This hint is used to create a window without an OpenGL or OpenGL ES context, which is useful for applications that do not require rendering capabilities.

Example usage of the Window class is also provided in the code comments.
Add the main.cpp file to the app directory, which contains the entry point of the application. The file includes the necessary headers for window creation using GLFW. This change enables the creation of a window for the application.
Update the window creation parameters in the Window class to use uint32_t for width and height instead of int. This ensures consistency and improves type safety.
- Add VkWrapper.hpp and VkWrapper.cpp files to the src/plugin/vk-wrapper directory
- Include VkWrapper.hpp in main.cpp to create an instance of VkWrapper
- export.h for compile-time project path exportation
- config.h for compile-time configuration parameters
…ility

This commit adds the PhysicalDevice class to the vk-wrapper plugin. The class is responsible for checking if a physical device is suitable for the application by verifying its device type and features. It also includes the necessary header and source files for the class.

Refactor the xmake.lua file to include the device directory
This commit adds the Surface class to the vk-wrapper plugin. The Surface class is responsible for creating a surface for the Vulkan API using a GLFW window and the Vulkan instance. It provides methods to create and destroy the surface. The surface is used to render graphics to the window or other surfaces.

MasterLaplace commented Nov 3, 2024
edited
Loading

Copy link
Copy Markdown
Contributor Author

There are some small details in the code implementation that need fixes. Also, I cannot test your code to see if it is working properly (it does compile though which is a good point). As this is graphical operations I won't ask for unit tests but could you provide a test main function for us to check please @MasterLaplace ?

As with SoftBody Test, there is a VkWrapper-Test repo. Is this enough?

ripel2 commented Nov 4, 2024

Copy link
Copy Markdown
Contributor

There are some small details in the code implementation that need fixes. Also, I cannot test your code to see if it is working properly (it does compile though which is a good point). As this is graphical operations I won't ask for unit tests but could you provide a test main function for us to check please @MasterLaplace ?

As with SoftBody Test, there is a VkWrapper-Test repo. Is this enough?

I just checked it and it works great, thank you !

MasterLaplace force-pushed the 14-vulkan-pipeline-plugin branch from 76c2039 to d9cf7e2 Compare November 4, 2024 12:48
MasterLaplace marked this pull request as ready for review November 4, 2024 13:29
ripel2 changed the title Vulkan Pipeline Plugin feat(vk-wrapper): vulkan API wrapper Nov 4, 2024
ripel2 requested review from a team and Miou-zora and removed request for a team and Miou-zora November 4, 2024 15:35
ripel2 merged commit 9bf147a into main Nov 4, 2024
ripel2 deleted the 14-vulkan-pipeline-plugin branch November 4, 2024 15:37
ripel2 mentioned this pull request Nov 5, 2024
MasterLaplace added a commit that referenced this pull request Dec 6, 2024
Related to:
- #14

In short, to draw the first triangle I made:

- [x] Create a
[VkInstance](https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkInstance.html)
- [x] Select a supported graphics card
([VkPhysicalDevice](https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkPhysicalDevice.html))
- [x] Create a
[VkDevice](https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDevice.html)
and
[VkQueue](https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkQueue.html)
for drawing and presentation
- [x] Create a window, window surface and swap chain
- [x] Wrap the swap chain images into
[VkImageView](https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkImageView.html)
- [x] Create a render pass that specifies the render targets and usage
- [x] Create framebuffers for the render pass
- [x] Set up the graphics pipeline
- [x] Allocate and record a command buffer with the draw commands for
every possible swap chain image
- [x] Draw frames by acquiring images, submitting the right draw command
buffer and returning the images back to the swap chain

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
This file contains hidden or 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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Vulkan pipeline plugin

3 participants


Back | FazBrowse Home | New Git URL