easyip2023 / lucurious Goto Github PK
View Code? Open in Web Editor NEW:scream: Lucurious -> [Library] for building advanced DRM/KMS Vulkan Renderers :scream:
License: MIT License
:scream: Lucurious -> [Library] for building advanced DRM/KMS Vulkan Renderers :scream:
License: MIT License
Having an issue when doing operations (i.e. vkDestroySemaphore) further down the road when I free a sub allocated block.
Invalid VkDescriptorSetLayout object. pSetLayouts must be a valid pointer to an array of descriptorSetCount valid VkDescriptorSetLayout handles.
Somewhere in test-image-texture.c the handles are being messed up.
Going to create gbm_bo and handle the presentation myself.
Having issues in test-rotate-rect.c. I thought that vkAcquireNextImageKHR changes the state of the semaphore. Then vkqueuesubmit changes it back. Help wanted
Need to remove stb
VkDisplayPropertiesKHR *pProperties;
vkGetPhysicalDeviceDisplayPropertiesKHR()
Currently in lucurious all Vk Structs pNext members are set to NULL. Most flag members in lucurious are set to zero, aware that the vulkan API specifies that is must be zero for a number of flag members, but eventually want to add more functionality for flags.
Usage of struct member provides extra functionality.
I have the API set up. Just need to make sure all the right parameters are being passed in spin square test.
Here: https://github.com/EasyIP2023/lucurious/blob/development/src/display/meson.build#L28
systemd only exists on Linux, or even only on certain Linus distros. It doesn't exist for example on BSDs.
Please make it optional, since it shouldn't be a hard dependency.
Implement input handling with libinput.so
This needs updating. May remove gp folder and header, need to figure out best way to rearrange this.
Not sure why yet.
Using gdb to investigate more.
Still need to add more useful output to command line tool. Makes it easier to develop.
Most likely a math or logic error in custom memory manager.
DRM/KMS examples work fine
This fine for now, but eventually needs to be change. Maybe figure out how to allocate physical pages myself.
Use global s to help limit the size of a given function call
Like I said in README I am still new. Believe this is something that should be implement so that the shader can freely access resources like buffers and images.
This needs to be implemented for all struct pointer members. As the amount of malloc/calloc/realloc calls cost to much for the operating system to consistently do. It will probably be better to allocate the space once and just use the same memory. Kind of like a Memory Pool.
KMS atomic modesetting
I want to allow for preferred selection of a KMS node if they so choose to. If not default to searching for a DRM device ourselves.
clang-11 says:
In file included from ../include/lucom.h:40:
In file included from ../include/lucurious.h:56:
In file included from ../include/vkcomp/all.h:30:
../include/vkcomp/set.h:561:16: error: initializer overrides prior initialization of this subobject [-Werror,-Winitializer-overrides]
.color.int32[0] = int32[0], .color.int32[1] = int32[1], .color.int32[2] = int32[2], .color.int32[3] = int32[3],
^~~~~~~~~~~~~~~~~~~~
../include/vkcomp/set.h:560:24: note: previous initialization is here
.color.float32[0] = float32[0], .color.float32[1] = float32[1], .color.float32[2] = float32[2], .color.float32[3] = float32[3],
^~~~~~~~~~~~~~~~
../include/vkcomp/set.h:562:16: error: initializer overrides prior initialization of this subobject [-Werror,-Winitializer-overrides]
.color.uint32[0] = uint32[0], .color.uint32[1] = uint32[1], .color.uint32[2] = uint32[2], .color.uint32[3] = uint32[3],
^~~~~~~~~~~~~~~~~~~~~~
../include/vkcomp/set.h:561:22: note: previous initialization is here
.color.int32[0] = int32[0], .color.int32[1] = int32[1], .color.int32[2] = int32[2], .color.int32[3] = int32[3],
^~~~~~~~~~~~~~
../include/vkcomp/set.h:563:9: error: initializer overrides prior initialization of this subobject [-Werror,-Winitializer-overrides]
.depthStencil.depth = depth, .depthStencil.stencil = stencil
^~~~~~~~~~~~~~~~~~~~~~~~~~~
../include/vkcomp/set.h:560:16: note: previous initialization is here
.color.float32[0] = float32[0], .color.float32[1] = float32[1], .color.float32[2] = float32[2], .color.float32[3] = float32[3],
^~~~~~~~~~~~~~~~~~~~~~~~
3 errors generated.
I want to update this particular function to have better output when vk* functions error out.
VkFence and VkSemaphore synchronization primitives are deprecated. Going to switch over to vulkan timeline semaphores.
Also still determining whether to use Vulkan Sync Objects or external.
I haven't had a chance to check if this works (Followed vulkan-tuturial to write those portions of the code) [vkcomp/setup.c, vkcomp/display.c] are the exact files. Because I'm dumping the pixels to a Wayland Client surface that is currently not configured to handle that.
There are already people working on Vulkan Wayland Compositors. It would be cool to implement wlroots into lucurious. Still learning Vulkan and Wayland so currently don't know.
https://github.com/st3r4g/swvkc
https://bitbucket.org/cheako/vkwayland/src/master/
I may not need to implement this..
This is for better resource reuse
Design Goals
There should be a an image on the screen that rotates and can be manipulated. Help much appreciated.
WARNING: Experimental compiler backend enabled. Here be dragons! Incorrect rendering, GPU hangs and/or resets are likely ๐ Greatest warning message ever
Not all device queues are supported yet in lucurious.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.