Giter VIP home page Giter VIP logo

lucurious's Introduction

Lucurious

Deprecated being replaced and written here kmsroots

SyFy User Interfaces

License

Note: This library is meant to be purely experimental and for educational purposes only

tested on

  • Ubuntu 20.04
  • Arch Linux

Inspired by the t.v series the expanse and other syfy t.v shows/movies.

Lucurious (L) Lowkey (U) unsure and curious if this is even possible, but why stop now!!! Essentially it will be an easy to use library for building highly sophisticated and advanced Vulkan DRM renderers. These renderers allow for easy creation of interactable single application compositors that appear to be straight out of science fiction.

What I am currently thinking

Known Issues

  • kms-novulkan crashes on (Arch Linux, Ubuntu 20.04)
  • rotate-rectangle example crashes on Ubuntu 20.04

Build/Install

arch linux (via AUR)

$ yay -S lucurious-git

Debian

$ sudo apt install -y python3-pip pkg-config libdrm-dev libinput-dev libgbm-dev libudev-dev libsystemd-dev vulkan-validationlayers ninja-build
$ sudo python3 -m pip install meson

# Install google libshaderc
$ git clone --branch v2021.2 https://github.com/google/shaderc ; cd shaderc
$ ./utils/git-sync-deps
$ mkdir build ; cd build
$ cmake -GNinja -DCMAKE_BUILD_TYPE=Release ..
$ ninja
$ sudo ninja install

# Install libcglm
$ git clone -b v0.8.4 https://github.com/recp/cglm ; cd cglm
$ mkdir build
$ meson build/
$ sudo ninja -C build/ install

# Optional Testing
$ git clone -b 0.15.2 https://github.com/libcheck/check ; cd check
$ mkdir build ; cd build
$ cmake ..
$ make -j$(nproc)
$ sudo make install

Useful Links

lucurious's People

Contributors

easyip2023 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

lucurious's Issues

BUG: Recreate Swap Chain

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.

Add OTBA (One Time Buffer Allocation) Function

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.

ENHANCEMENT: pNext && flag struct members

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.

VKSemaphore signal/wait issue

Having issues in test-rotate-rect.c. I thought that vkAcquireNextImageKHR changes the state of the semaphore. Then vkqueuesubmit changes it back. Help wanted

error: initializer overrides prior initialization of this subobject

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.

Use Globals

Use global s to help limit the size of a given function call

BUG: Image Texture Example Fix

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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.