Project Description

Sometimes when developing a GTK program, we want some nice 3D rendered content in it. And to do that, usually we want to use some Graphics API.

For OpenGL, we can easily solve that with GtkGLArea. But GL is not the only API exists; there's also a fancy new API called Vulkan (and even GTK itself have a backend for it), yet at the moment there is no such thing as GtkVulkanArea.

We need to fix that.

Goal for this Hackweek

Implement a widget serve roughly the same purpose of GtkGLArea, but for Vulkan. It doesn't need to be feature complete or production ready, we just want a quick and dirty PoC as a foundation for future implementations.

Resources

GtkGLArea

Vulkan

Looking for hackers with the skills:

vulkan gtk 3d opengl c

This project is part of:

Hack Week 23

Activity

  • about 1 year ago: vliaskovitis liked this project.
  • about 1 year ago: epaolantonio liked this project.
  • about 1 year ago: yudaike started this project.
  • about 1 year ago: yudaike added keyword "c" to this project.
  • about 1 year ago: yudaike added keyword "vulkan" to this project.
  • about 1 year ago: yudaike added keyword "gtk" to this project.
  • about 1 year ago: yudaike added keyword "3d" to this project.
  • about 1 year ago: yudaike added keyword "opengl" to this project.
  • about 1 year ago: yudaike originated this project.

  • Comments

    • yudaike
      about 1 year ago by yudaike | Reply

      Result for this hackweek: https://github.com/MosakujiHokuto/gtk-vulkan-demo/

    Similar Projects

    RISC-V emulator in GLSL capable of running Linux by favogt

    Description

    There are already numerous ways to run Linux and some programs through emulation in a web browser (e.g. x86 and riscv64 on https://bellard.org/jslinux/), but none use WebGL/WebGPU to run the emulation on the GPU.

    I already made a PoC of an AArch64 (64-bit Arm) emulator in OpenCL which is unfortunately hindered by a multitude of OpenCL compiler bugs on all platforms (Intel with beignet or the new compute runtime and AMD with Mesa Clover and rusticl). With more widespread and thus less broken GLSL vs. OpenCL and the less complex implementation requirements for RV32 (especially 32bit integers instead of 64bit), that should not be a major problem anymore.

    Goals

    Write an RISC-V system emulator in GLSL that is capable of booting Linux and run some userspace programs interactively. Ideally it is small enough to work on online test platforms like Shaderoo with a custom texture that contains bootstrap code, kernel and initrd.

    Minimum:

    riscv32 without FPU (RV32 IMA) and MMU (µClinux), running Linux in M-mode and userspace in U-mode.

    Stretch goals:

    FPU support, S-Mode support with MMU, SMP. Custom web frontend with more possibilities for I/O (disk image, network?).

    Resources

    RISC-V ISA Specifications
    Shaderoo
    OpenGL 4.5 Quick Reference Card


    FizzBuzz OS by mssola

    Project Description

    FizzBuzz OS (or just fbos) is an idea I've had in order to better grasp the fundamentals of the low level of a RISC-V machine. In practice, I'd like to build a small Operating System kernel that is able to launch three processes: one that simply prints "Fizz", another that prints "Buzz", and the third which prints "FizzBuzz". These processes are unaware of each other and it's up to the kernel to schedule them by using the timer interrupts as given on openSBI (fizz on % 3 seconds, buzz on % 5 seconds, and fizzbuzz on % 15 seconds).

    This kernel provides just one system call, write, which allows any program to pass the string to be written into stdout.

    This project is free software and you can find it here.

    Goal for this Hackweek

    • Better understand the RISC-V SBI interface.
    • Better understand RISC-V in privileged mode.
    • Have fun.

    Resources


    Add a machine-readable output to dmidecode by jdelvare

    Description

    There have been repeated requests for a machine-friendly dmidecode output over the last decade. During Hack Week 19, 5 years ago, I prepared the code to support alternative output formats, but didn't have the time to go further. Last year, Jiri Hnidek from Red Hat Linux posted a proof-of-concept implementation to add JSON output support. This is a fairly large pull request which needs to be carefully reviewed and tested.

    Goals

    Review Jiri's work and provide constructive feedback. Merge the code if acceptable. Evaluate the costs and benefits of using a library such as json-c.