Skip to content
Back to skills

Vulkan Development Windows

ASecurity

Use when setting up or debugging Vulkan on Windows.

  • 2 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 10, 2026
ai-agentsgoshellbashtestingdebuggingapiperformance

Works with

  • api

Security analysis

A100/100

Scanned September 10, 2026

npx -y skills add LoopyLuci/Skills --skill vulkan-development-windows --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Vulkan Development Windows?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Vulkan Development Windows
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/loopyluci-vulkan-development-windows/badge)](https://www.skillsdirectory.com/skills/loopyluci-vulkan-development-windows)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: vulkan-development-windows
description: "Use when setting up or debugging Vulkan on Windows."
category: software-development
tags: [vulkan, windows, graphics, layers, sdk]
---
# Vulkan Development on Windows

Setting up Vulkan SDK, validation layers, and implicit layers on Windows.

## SDK Setup

```powershell
# Download from https://vulkan.lunarg.com/
# Or with winget
winget install -e --id KhronosGroup.VulkanSDK

# Environment variables set by SDK installer:
# VULKAN_SDK = C:\VulkanSDK\1.3.xxx
# PATH += %VULKAN_SDK%\Bin
# VK_LAYER_PATH = %VULKAN_SDK%\Bin
```

## Layer Configuration

```powershell
# Environment variables
$env:VK_INSTANCE_LAYERS = "VK_LAYER_KHRONOS_validation"
$env:VK_LOADER_LAYERS_ENABLE = "VK_LAYER_KHRONOS_validation"
$env:VK_LOADER_DEBUG = "all"          # loader debug output

# Layer files are at:
# %VULKAN_SDK%\Bin\VkLayer_khronos_validation.json
# %VULKAN_SDK%\Bin\VkLayer_khronos_validation.dll
```

## Implicit Layers (Ships with app)

```powershell
# An implicit layer in a JSON manifest:
# VkLayer_my_layer.json
{
  "file_format_version": "1.0.0",
  "layer": {
    "name": "VK_LAYER_SYNAPSE_shim",
    "type": "GLOBAL",
    "library_path": ".\\VkLayer_synapse.dll",
    "api_version": "1.3.250",
    "implementation_version": "1",
    "description": "Synapse iGPU shim layer",
    "functions": {
      "vkGetInstanceProcAddr": "vk_loader_layer_get_instance_proc_addr",
      "vkGetDeviceProcAddr": "vk_loader_layer_get_device_proc_addr"
    },
    "enable_environment": {
      "ENABLE_SYNAPSE": "1"
    },
    "disable_environment": {
      "DISABLE_SYNAPSE": "1"
    }
  }
}
```

## Testing Layers

```powershell
# Check layer is visible
vulkaninfo.exe | Select-String "Synapse"

# Verify layer enumeration
$env:VK_LOADER_DEBUG = "all"
.\my_vulkan_app.exe 2>&1 | Select-String "Synapse"

# Custom layer path
$env:VK_LAYER_PATH = "D:\Projects\iGPU_Shim\build\layer"
$env:ENABLE_SYNAPSE = "1"
.\my_vulkan_app.exe
```

## Vulkan SDK CMake

```cmake
find_package(Vulkan REQUIRED)
if(Vulkan_FOUND)
    target_include_directories(myapp PRIVATE ${Vulkan_INCLUDE_DIRS})
    target_link_libraries(myapp PRIVATE Vulkan::Vulkan)
endif()

# Or manual path
set(VULKAN_SDK "C:/VulkanSDK/1.3.283.0")
target_include_directories(myapp PRIVATE "${VULKAN_SDK}/Include")
target_link_libraries(myapp PRIVATE "${VULKAN_SDK}/Lib/vulkan-1.lib")
```

## Validation Layers

```bash
# Available validation layers:
# VK_LAYER_KHRONOS_validation (recommended)
# VK_LAYER_LUNARG_api_dump     (prints all API calls)
# VK_LAYER_LUNARG_monitor      (FPS/performance)
# VK_LAYER_LUNARG_screenshot   (capture frames)

# Enable via env var
export VK_INSTANCE_LAYERS=VK_LAYER_KHRONOS_validation
export VK_DEBUG_UTILS_MESSAGE_SEVERITY=verbose
export VK_DEBUG_UTILS_MESSAGE_TYPE=validation
```

## Pitfalls

- **VK_LAYER_PATH** must point to the directory containing the JSON manifest, not the DLL
- **enable_environment** in implicit layer manifests must match exactly -- case-sensitive
- **Loader reads all JSON** in VK_LAYER_PATH -- remove old manifests to avoid duplicates
- **32-bit vs 64-bit** -- layer DLL architecture MUST match the app
- **Vulkan SDK redist** -- deploy `vulkan-1.dll` and layer manifests with your app

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…