[Mesa-dev] gears ports: Vulkan vk1_gears and OS Mesa kitty_gears
michaeljclark at mac.com
Tue Nov 24 08:43:05 UTC 2020
I have been working on several gears ports that I thought I'd share:
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:
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 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 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 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.
More information about the mesa-dev