Shaderc VkRunner (GPU Shader Sandbox)

VkRunner是一个基于Piglit的shader_runner的Vulkan着色器测试工具,旨在支持与Piglit的shader_test格式尽可能相似的测试脚本。它支持通过GLSL或SPIR-V编写着色器,并提供丰富的测试命令来验证着色器的行为,包括绘制、计算、探针检测等功能。
2.5分
8

What is VkRunner?

VkRunner is a tool for testing Vulkan shaders by executing test scripts similar to Piglit's shader_test format. It allows developers to verify shader functionality through drawing operations and color probes.

How to use VkRunner?

VkRunner requires glslangValidator for GLSL-to-SPIR-V compilation. Tests are written in a script format with sections for shaders, vertex data, and test commands like draw operations and color probes.

Use Cases

Ideal for Vulkan developers needing to test shader functionality, verify rendering outputs, or validate SPIR-V compilation results across different hardware/drivers.

Key Features

Shader TestingSupports testing vertex, fragment, and compute shaders through drawing operations and compute dispatches.
SPIR-V SupportCan test shaders provided as either GLSL source (compiled to SPIR-V) or pre-compiled SPIR-V assembly.
Buffer ManagementProvides commands for managing uniform buffers (UBO), storage buffers (SSBO) and push constants.
Pipeline ConfigurationAllows detailed configuration of graphics pipeline state including blend modes, depth testing, and stencil operations.

Pros and Cons

Advantages
Compatible with Piglit's shader_test format for easier migration
Supports both GLSL and SPIR-V shader inputs
Detailed pipeline state configuration for testing various Vulkan features
Can be used as both CLI tool and embeddable library
Limitations
Requires glslangValidator for GLSL compilation
Primarily designed for functional testing rather than performance testing
Limited documentation compared to commercial tools

Getting Started

Install Dependencies
Install Rust toolchain and glslangValidator (from KhronosGroup/glslang repository).
Write Test Script
Create a .shader_test file with [vertex shader], [fragment shader], and [test] sections.
Run Tests
Execute tests using the vkrunner binary or cargo run.

Example Use Cases

Simple Triangle TestVerify a basic vertex+fragment shader renders a red triangle correctly
Compute Shader TestVerify compute shader correctly processes data in storage buffer

Frequently Asked Questions

How do I specify Vulkan version requirements?
Can I test tessellation shaders?
How to handle test failures?

Additional Resources

Piglit Project
Original shader_test format reference
glslang Repository
Required GLSL-to-SPIR-V compiler
Vulkan Specification
Official Vulkan API documentation
安装
复制以下命令到你的Client进行配置
注意:您的密钥属于敏感信息,请勿与任何人分享。
精选MCP服务推荐
Duckduckgo MCP Server
已认证
DuckDuckGo搜索MCP服务器,为Claude等LLM提供网页搜索和内容抓取服务
Python
972
4.3分
Firecrawl MCP Server
Firecrawl MCP Server是一个集成Firecrawl网页抓取能力的模型上下文协议服务器,提供丰富的网页抓取、搜索和内容提取功能。
TypeScript
4.1K
5分
Figma Context MCP
Framelink Figma MCP Server是一个为AI编程工具(如Cursor)提供Figma设计数据访问的服务器,通过简化Figma API响应,帮助AI更准确地实现设计到代码的一键转换。
TypeScript
6.8K
4.5分
Edgeone Pages MCP Server
EdgeOne Pages MCP是一个通过MCP协议快速部署HTML内容到EdgeOne Pages并获取公开URL的服务
TypeScript
324
4.8分
Exa Web Search
已认证
Exa MCP Server是一个为AI助手(如Claude)提供网络搜索功能的服务器,通过Exa AI搜索API实现实时、安全的网络信息获取。
TypeScript
1.9K
5分
Baidu Map
已认证
百度地图MCP Server是国内首个兼容MCP协议的地图服务,提供地理编码、路线规划等10个标准化API接口,支持Python和Typescript快速接入,赋能智能体实现地图相关功能。
Python
821
4.5分
Context7
Context7 MCP是一个为AI编程助手提供实时、版本特定文档和代码示例的服务,通过Model Context Protocol直接集成到提示中,解决LLM使用过时信息的问题。
TypeScript
5.4K
4.7分
Minimax MCP Server
MiniMax Model Context Protocol (MCP) 是一个官方服务器,支持与强大的文本转语音、视频/图像生成API交互,适用于多种客户端工具如Claude Desktop、Cursor等。
Python
903
4.8分
AIbase
智启未来,您的人工智能解决方案智库
简体中文