wgsl-validator

Crates.iowgsl-validator
lib.rswgsl-validator
version1.0.0
created_at2025-04-25 10:46:34.692441+00
updated_at2025-04-25 10:46:54.098869+00
descriptionValidate wgsl in rust or C/C++
homepage
repositoryhttps://github.com/NazaraEngine/wgsl-validator
max_upload_size
id1648801
size23,739
kbz_8 (Kbz-8)

documentation

README

WGSL Validator Build

A simple WGSL validator in Rust over naga with C bindings.

use wgsl_validator::*;

fn main() -> Result<(), WgslError> {
    let wgsl_source = r#"
        @fragment
        fn main_fs() -> @location(0) vec4<f32> {
            return vec4<f32>(1.0, 1.0, 1.0, 1.0);
        }
    "#;
    let mut validator = Validator::new();
    validator.validate_wgsl(wgsl_source)
}

Or using the C API

#include <stdio.h>
#include "wgsl_validator.h"

#define WGSL_SOURCE(...) #__VA_ARGS__

const char* wgsl_source = WGSL_SOURCE(
@fragment
fn main_fs() -> @location(0) vec4<f32> {
	return vec4<f32>(1.0, 1.0, 1.0, 1.0);
}
);

int main(void)
{
	char* error;
	wgsl_validator_t* validator = wgsl_validator_create();
	if(wgsl_validator_validate(validator, wgsl_source, &error))
	{
		fprintf(stderr, "%s\n", error);
		wgsl_validator_free_error(error);
	}
	wgsl_validator_destroy(validator);
	return 0;
}
Commit count: 5

cargo fmt