Benjamin Otte
f366ccc0b2
vulkan: Introduce GskVulkanShaderOp
...
It's the new base class for shaders now.
We're doing deep inheritance now, woohoo!
Also, port all the shader ops to it.
2023-07-16 13:16:43 +02:00
Benjamin Otte
4954e6962f
vulkan: Remove the VulkanOp.upload() vfunc
...
It's not used anymore.
2023-07-16 13:16:43 +02:00
Benjamin Otte
2aba50efa0
vulkan: Move the render ops to the Render
...
This is a massive refactoring because it collects all the renderops
of all renderpasses into one long array in the Render object.
Lots of code in there is still flaky and needs cleanup. That will
follow in further commits.
Other than that it does work fine though.
2023-07-16 12:13:00 +02:00
Benjamin Otte
c0b185bee9
vulkan: Make Op->command() return the next op
...
This way, ops can batch themselves.
They don't dothat yet, but you know where this is going...
2023-07-16 12:13:00 +02:00
Benjamin Otte
da4a4f6a25
vulkan: Add a Stage enum
...
It's declaring at which stage this command should run. So far nothing is
using it, but that will follow in future commits.
2023-07-16 12:13:00 +02:00
Benjamin Otte
a6b2bcbf24
vulkan: Remove unused arguments from Op vfuncs
...
Makes code a lot simpler.
2023-07-16 12:13:00 +02:00
Benjamin Otte
d86d4c5597
vulkan: Add infrastructure for printing ops
...
... and add a GSK_DEBUG=verbose setting making use of it.
2023-07-16 12:13:00 +02:00
Benjamin Otte
a621bd066b
vulkan: Remove op.get_pipeline()
...
It's unused now that GskVulkanPipeline is gone.
2023-07-16 12:13:00 +02:00
Benjamin Otte
210cb3eecd
vulkan: Turn push constants into an op
...
This removes the last remaining original op from the gskvulkanrenderpass.c,
so that file got some cleanup, too.
2023-07-16 12:13:00 +02:00