Hello, I have a question. I have made a Vulkan compute program (a simple port of the renderer from the “ray-tracing in a weekend” book) that behaves inconsistently between GPU vendors and operating systems. It works as expected on dedicated Nvidia graphics under Linux and Windows, and on integrated Intel graphics under Windows.
However, on the same Intel system, but under Linux, it works fine only for small inputs (small sample count and/or low geometry count). For bigger inputs, it either finishes (in a very short time) with no errors but produces an empty image, or crashes with an error saying a single submission command buffer got submitted twice. Moreover, a single binary run multiple times can produce both of these behaviours. I got my friend to run it on their Linux system with integrated AMD graphics, and again works fine for small inputs, but for bigger inputs it produces partial renders. Where some tiles are fully rendered and some are just empty.
What could be causing this? Why does it only happen under these driver+hardware combinations?
code avaible on github: https://github.com/tomatih/raytracing_in_one_weekend/tree/vulkan_compute