| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
When I renamed blend to texture, I overlooked that the color
text pipeline also uses this shader. Fix it.
|
|
|
|
|
|
|
|
|
|
| |
Instead of having a function with lots of arguments in
GskVulkanRender that we call from GskVulkanRenderPass which
then just calls back into GskVulkanRenderPass, just create
the new render pass object locally, and an api to add it
to the list that GskVulkanRender keeps. This makes it
a lot easier to preserve all the relevant parameters from
the parent render pass.
|
|
|
|
|
| |
Just keep the viewport as a graphene_rect_t, we don't need
to use the Vulkan type here.
|
|
|
|
|
| |
Count how many pixels of intermediate textures we create.
If we can count it, we can optimize it.
|
|
|
|
| |
Factor out a helper function.
|
|
|
|
| |
It was missing a return.
|
|
|
|
| |
We can use the texture pipeline for this, with a repeating sampler.
|
|
|
|
| |
None of the render ops use it, yet.
|
|
|
|
| |
This is in preparation of allowing multiple samplers.
|
|
|
|
|
| |
This is what it does, and the name blend is easily
confused with blend-mode.
|
|
|
|
|
|
| |
Pass in a second rect that defines the size of the texture.
Update the sole caller to pass in the same rect, for unchanged
behavior.
|
|
|
|
| |
We were not correctly preserving the modelview transform.
|
|
|
|
|
| |
Repeating linear gradient nodes share most of the implementation
with linear gradient nodes, but they shouldn't share the class name.
|
|
|
|
|
| |
We don't have any other such getters in the public api at
this point, so leave this one out as well.
|
|
|
|
|
|
| |
Since this value is only meaningful if we wait for the rendering
to end, we only keep this timer if GSK_RENDERING_MODE=sync is
enabled.
|
|
|
|
|
|
| |
Move away from the idea of intra-frame sampling, since we only
push samples once per frame, anyway. Instead, make the profiler
keep a rolling average of the last n frames.
|
|
|
|
|
|
| |
Reset the min/max/average counters before calculating,
and only print the values if we have samples. In addition,
print the number of samples.
|
|
|
|
| |
This is interesting now that we have multiple render passes.
|
|
|
|
|
|
|
|
|
| |
Whenever we need a node as a texture, we now start a new render
pass that renders the node into a new intermediate texture, and
set up a semaphore to make the current render pass wait for it.
As part of this reorganization, much of the setup and drawing
code moved from gskvulkanrender.c to gskvulkanrenderpass.c.
|
| |
|
|
|
|
|
|
|
|
|
| |
Allow to pass in semaphores to wait for before executing
and to signal after executing the command buffer. This
just exposes the capabilities of the underlying Vulkan
api. Update all callers to pass no semaphores, for now.
We will use this in the future.
|
|
|
|
|
| |
The new function creates a vulkan image that is suitable for
use as a framebuffer to render to and as a texture to read from.
|
|
|
|
|
| |
These were missing the blur-radius parameter that is written
by the vertex shader, causing Vulkan validation to complain.
|
|
|
|
|
|
| |
I've finally figured out the right combination of src and dest
stage and access flags to make all validation warnings go away.
This commit only fixes the direct upload code.
|
|
|
|
|
|
| |
This makes the value show up in the inspector without
any extra work. We report the number per-frame, since
that makes the most sense.
|
|
|
|
|
| |
It is often useful to count things per-frame, and reset
the counter afterwards.
|
|
|
|
|
| |
This is just to match the gl renderer and to learn how
counters work.
|
|
|
|
|
| |
Make it possible to have counters that get incremented
by values other than 1.
|
|
|
|
| |
Always helps to have some measure of progress.
|
| |
|
|
|
|
|
| |
Document newly added apis, and ensure that all public apis
are listed in the docs.
|
|
|
|
|
| |
A function with ensure in the name would better check if the
thing it is supposed to ensure already exists.
|
|
|
|
| |
There shouldn't be any gst_ functions in here...
|
|
|
|
|
| |
Go back to a single GskVulkanOpRender that can
handle 0, 1 or 2 sources.
|
|
|
|
| |
This is a directly-from-the-spec, unoptimized implementation.
|
|
|
|
|
|
|
| |
This is another example for a 2-texture shader.
So far, only separable blend modes are implemented.
The implementation is not optimized, with an
if-else cascade in the shader.
|
|
|
|
|
|
|
|
|
| |
We were looking at uninitialized memory here, instead
of the type of the source clip, as we should.
This showed up as mispositioned clip in the first frame
of a crossfade stack transition, and also as overdraw in
sliding stack transitions.
|
|
|
|
| |
This is the first shader using two textures. It almost works.
|
|
|
|
|
|
|
| |
We already move the descriptor set layout out of it,
so we can just as well keep the pipeline layouts in
the render object as well, and get rid of this extra
object. Update all callers.
|
|
|
|
|
| |
These are differentiated by the number of textures; currently
we have shaders with 0 and 1 textures.
|
|
|
|
| |
This is a step towards allowing multiple pipeline layouts.
|
|
|
|
|
| |
We want to maintain a single descriptor set layout while introducing
multiple pipeline layouts, so split this off.
|
|
|
|
|
| |
We don't use the upload-single-region api anymore.
No need to keep it around.
|
|
|
|
|
| |
This uses the new api that was introduced in the previous
commit.
|
|
|
|
|
|
|
| |
Instead of doing multiple copy commands with a tiny buffer
for each glyph, we can just batch them all together. This
also avoids the issue of creating multiple barriers for the
same image.
|
|
|
|
|
| |
It complains if a vertex shader has an out that is not matched
to an in of the fragment shader.
|
| |
|
| |
|
|
|
|
| |
This was just a simple oversight.
|
| |
|