# vulkanshaderspv

Vulkan image shader filter.

## Examples

    gst-launch-1.0 videotestsrc ! vulkanupload ! vulkanshader fragment-location="myshader.f.spv" ! vulkanimagesink

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 ]

Presence – always

Direction – sink

Object type – GstPad

### `src`

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

Presence – always

Direction – src

Object type – GstPad

## 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