Rework the readme#2358
Conversation
|
Is there a reason you want to rework the readme? |
|
Hi @asuessenbach! I've been meaning to do this for a while, actually. I have a list of things that I found a little less than ideal with the current readme:
If you're OK with this, I can proceed with making these changes, naturally subject to your review at the end. I hope to improve the documentation at the end of this exercise. |
|
You're more than welcome to rework the readme! |
9896e08 to
c2a3479
Compare
- Remove HTML hyperlinks; markdown generates automatically - Use backticks \` to demarcate config macros - Remove `VULKAN_HPP_NO_STD_MODULE` option
- `-` instead of `*` - Spaces around lists
86cebc2 to
581d2fe
Compare
- Minor changes to main readme so that links work
- Minor changes in main readme
- Add builder pattern
4a2fb83 to
576fd7a
Compare
|
How about adding CMake's include(FetchContent)
FetchContent_Declare(vulkan-hpp
GIT_REPOSITORY "https://github.com/KhronosGroup/Vulkan-Hpp.git"
GIT_TAG "v1.4.336" # release tag, commit hash or branch name
GIT_SHALLOW ON)
FetchContent_MakeAvailable(vulkan-hpp) |
|
For the "Build Instructions", it is likely best to separate header generation and sample/test building. At the very least, the build section should state that building is purely for those tasks and that headers can be used by just including them. For merely using the headers (because e.g. they haven't landed in Vulkan-Headers yet), quickly showing how to link against |
|
Both good points @M2-TE. I am focusing mostly on |
- Rework flow; start with vulkan fundamentals - Move things around - Adhere to 1 sentence, 1 line
70f1aba to
293eca2
Compare
- Added TODOs for review - Added section on `std::expected`
Co-authored-by: Jan Kuhlmann <33833587+M2-TE@users.noreply.github.com>
Co-authored-by: Jan Kuhlmann <33833587+M2-TE@users.noreply.github.com>
823eb13 to
b7a41e2
Compare
- Move 3.30 to 4.2 stuff into spoiler
45f2ad8 to
bf4fed4
Compare
|
Wow! I tried hard, but could not spot anything to improve! After you've resolved the conflict, I'll merge this. |
|
@asuessenbach there are a few TODOs though; hope you can think of some solutions for them. (You may need to revert to the old GitHub suggestions view; the new one hides all the comments). |
asuessenbach
left a comment
There was a problem hiding this comment.
Indeed, a couple of Todos I didn't see before.
I tried to answer some of them, others (like the one in the Readme.md) just needs to be done.
| Adding the third step can potentially result in more efficient code. | ||
| If you intend to use multiple devices, this last step can be omitted, and delegated to the driver instead. | ||
|
|
||
| <!-- TODO: what cases? --> |
There was a problem hiding this comment.
If I remember correctly, there was some company having their own (private) graphics library as a dll, based on Vulkan-Hpp. And the actual user of that dll doesn't need to know about that.
|
@sharadhr and @M2-TE, while we're working on the documentation of Vulkan-Hpp: I'm thinking about completely removing those I imagine to have some words about removing them in the Readme, telling that they're gonna be marked as deprecated in about a year, and finally be removed in about another year. What would you think about that? |
|
I think this is something that needs to be discussed with the wider community. I think maybe this should be in its own issue and PR? There is overlap, but I'm not sure I can speak for everyone about removing |
|
I agree with @sharadhr as in that should probably be discussed in a separate PR. Off the top of my head, one thing to discuss might be the dispatchers; I've used neither myself, so this is a question that probably needs a little more community reach like on the Vulkan Discord or Reddit. |
|
OK—I think this is ready for final review and merge. I don't want any more scope creep and hope to address the rest of the readme in phases and separate PRs. |
|
I don't want to be overly picky, but you have this line in your latest commit about the static dispatcher:
The last part So, for the static dispatcher, the function declarations need to have function definitions somewhere (some select few provided by vulkan-1, all provided by volk for example). This is why you can get linking errors with vulkan-1. The dynamic dispatcher however does indeed use proper function pointers, so that is correct. When using it, all the function declarations are never declared in |
|
Perfect, I see nothing else to comment on! |
|
What a great work! Thanks a lot for this great contribution. |
EDIT for posterity:
Resolves #2463