Conversation
Signed-off-by: koubaa <koubaa@github.com>
Signed-off-by: koubaa <koubaa@github.com>
Signed-off-by: koubaa <koubaa@github.com>
Signed-off-by: koubaa <koubaa@github.com>
| // used in Core.hpp | ||
| py::object kp_trace, kp_debug, kp_info, kp_warning, kp_error; | ||
|
|
||
| static void kp_log(int level, const std::string& msg) { |
There was a problem hiding this comment.
Although it is already understandable, I would put an enum for the level (just to have a meaningful level name from "trace" to "error")
| computeInstanceCreateInfo.enabledLayerCount = | ||
| static_cast<uint32_t>(validLayerNames.size()); | ||
| computeInstanceCreateInfo.ppEnabledLayerNames = validLayerNames.data(); | ||
| computeInstanceCreateInfo.setEnabledLayerCount( |
There was a problem hiding this comment.
Same for next ones but I like the usage of the VKCPP capabilities
ThePseudo
left a comment
There was a problem hiding this comment.
For what I understand, I would add the log levels in the python/src/main.cpp.
I would wait for people who know more than me for the rest
|
This is can be handled using the vulkan extension VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT , see here for details . I can add some example code if that helps? |
|
@eokeeffe a bit late to the comment but a test / example would be great! Closing this PR instead |
Yeah sure, let me create a simple example and I'll submit an MR for it |
|
Great - thanks! |
This change gets closer to letting shader printf work in the idiomatic way for vulkan. If an env var is set, the appropriate layer is included. Together with #406, where device extensions can be selected, this almost works from the python side. There is still one problem which I don't fully understand yet whereby shader printf do not appear in the log (even if I set the information bit in on the debug logger), but it does appear if I set the (now considered obsolete) vulkan env var DEBUG_PRINTF_TO_STDOUT=1.
Note - the python logging objects were used without acquiring the GIL - which is invalid use of pybind11 that leads to race conditions. I encountered many of those while I was working on this branch. This PR fixes those issues by explicitly acquiring the GIL during the log methods.
One thing I didn't yet look into is this note: