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
efa4cae949
vulkan: Remove hacky function arguments
...
They're unused now that we removed the old render ops.
2023-07-16 12:12:36 +02:00
Benjamin Otte
9da1055575
vulkan: Create pipeline differently for ops
...
Instead of creating a pipeline GObject, just ask for the VkPipeline.
And instead of having the Op handle it, just let the renderpass look
up/create the relevant pipeline while creating commands so that it can
insert vkCmdBindPipeline calls as-needed.
2023-07-16 12:12:36 +02:00
Benjamin Otte
7cf7870254
vulkan: Initialize ops differently
...
Instead of creating the op manually, just pass in the renderpass and
have the op created from there.
This way ops aren't really initialized anymore, they are more appended
to the queue, so instead of foo_op_init() we can just call the function
foo_op().
2023-07-16 12:12:36 +02:00
Benjamin Otte
7763e883d6
vulkan: Use VkPipeline instead of GskVulkanPipeline
...
This is in preparation for getting rid of GskVulkanPipelines.
2023-07-16 12:12:36 +02:00
Benjamin Otte
f53da409e5
vulkan: Add an argument to vfunc
...
We need this in the future.
2023-07-16 12:12:36 +02:00
Benjamin Otte
94a64329c2
vulkan: Add new renderops for texture rendering
...
Adds 2 ops:
- Upload
Creates a new Vulkan image and uploads data into it
- Texture
Draws a given image
These 2 ops are then used for GskTextureNodes.
2023-07-16 12:12:36 +02:00