vulkanshaderspv

Vulkan image shader filter.

Examples

gst-launch-1.0 videotestsrc ! vulkanupload ! vulkanshaderspv fragment-location="myshader.f.spv" ! vulkansink

The following is a simple Vulkan passthrough shader with the required inputs. Compile it with glslc --target-env=vulkan1.0 myshader.frag -o myshader.f.spv.

#version 450

layout(location = 0) in vec2 inTexCoord;

layout(set = 0, binding = 0) uniform ShaderFilter {
  float time;
  float width;
  float height;
};
layout(set = 0, binding = 1) uniform sampler2D inTexture;

layout(location = 0) out vec4 outColor;

void main () {
  outColor = texture (inTexture, inTexCoord);
}

Hierarchy

GObject
    ╰──GInitiallyUnowned
        ╰──GstObject
            ╰──GstElement
                ╰──GstBaseTransform
                    ╰──GstVulkanVideoFilter
                        ╰──vulkanshaderspv

Factory details

Authors: – Martin Reboredo

Classification:Filter/Video

Rank – none

Plugin – vulkan

Package – GStreamer Bad Plug-ins

Pad Templates

sink

video/x-raw(memory:VulkanImage):
         format: { BGRA }
          width: [ 1, 2147483647 ]
         height: [ 1, 2147483647 ]
      framerate: [ 0/1, 2147483647/1 ]

Presencealways

Directionsink

Object typeGstPad


src

video/x-raw(memory:VulkanImage):
         format: { BGRA }
          width: [ 1, 2147483647 ]
         height: [ 1, 2147483647 ]
      framerate: [ 0/1, 2147483647/1 ]

Presencealways

Directionsrc

Object typeGstPad


Properties

fragment

“fragment” GBytes *

SPIRV fragment binary

Flags : Read / Write


fragment-location

“fragment-location” gchararray

SPIRV fragment source

Flags : Read / Write

Default value : NULL


vertex

“vertex” GBytes *

SPIRV vertex binary

Flags : Read / Write


vertex-location

“vertex-location” gchararray

SPIRV vertex source

Flags : Read / Write

Default value : NULL


The results of the search are