Hi Folks,

I have been working on several gears ports that I thought I'd share:

- https://github.com/michaeljclark/glkitty/

## Background

I have found the Mesa gears demo to be a very useful test case for porting to new OpenGL API variants. In fact I did a search and found "gearsvbo", a port that I worked on over a decade ago while familiarizing with OpenGL ES1 that I had completely forgotten about:

- https://www.mail-archive.com/mesa3d-dev@lists.sourceforge.net/msg07140.html

I present glkitty, a header framework for creating OS Mesa apps using kitty terminal graphics protocol, of which the first app is kitty_gears.

I also colocated several other gears ports including Vulkan vk1_gears. The Vulkan samples version of gears had a large number of dependencies on a C++ framework so I decided to do a simpler pure C port.

The web page has a full description. Here is a brief outline:

- kitty_gears - OS Mesa gears using kitty terminal graphics protocol
- gl1_gears - OpenGL 1.x gears using GLFW similar to the original
- gl2_gears - OpenGL 2.x gears using VAO/VBO, programmable shaders
- vk1_gears - Vulkan 1.x gears using spirvtools and SPIR-V shaders

# gl2_gears

gl2_gears is similar to es2gears in mesa-demos, however it uses defacto standard linmath.h plus gl2_util.h which contains common shader loader and vertex buffer functions. gl2_util.h is used for several small tests.

# kitty_gears

kitty_gears uses OS Mesa and gl2_util.h. It could be useful to render test images from test runs, something that console history will be well suited to. It still needs a little work with lifecycle management of kitty images, as the terminal state now includes these image surfaces. It supports ZLib compression and animation...

# vk1_gears

vk1_gears is a Vulkan port that might be useful for testing Vulkan window resize, reshape, pipe reconfiguration and semaphores. I have used it with the NVIDIA Vulkan and the Mesa Vulkan drivers with varying levels of success.

Anyhow, that's about it. Let me know if you find this useful. I was actually specifically interested in using kitty for inspecting test case output where I can run a batch of tests and can scroll through results.

Regards,
Michael.
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to