From 21681a09d4081ed045e5e9d61409310209b95e4b Mon Sep 17 00:00:00 2001 From: firestar99 Date: Wed, 8 Jul 2026 10:39:53 +0200 Subject: [PATCH] compiletest webpage example --- tests/compiletests/ui/webpage.rs | 35 ++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 tests/compiletests/ui/webpage.rs diff --git a/tests/compiletests/ui/webpage.rs b/tests/compiletests/ui/webpage.rs new file mode 100644 index 0000000000..0c827b73f9 --- /dev/null +++ b/tests/compiletests/ui/webpage.rs @@ -0,0 +1,35 @@ +// build-pass + +use glam::UVec3; +use spirv_std::spirv; + +#[repr(u32)] +pub enum Outcome { + Fizz, + Buzz, + FizzBuzz, +} + +trait Game { + fn fizzbuzz(&self) -> Option; +} + +impl Game for usize { + fn fizzbuzz(&self) -> Option { + match (self % 3 == 0, self % 5 == 0) { + (true, true) => Some(Outcome::FizzBuzz), + (true, false) => Some(Outcome::Fizz), + (false, true) => Some(Outcome::Buzz), + _ => None, + } + } +} + +#[spirv(compute(threads(64)))] +pub fn main( + #[spirv(global_invocation_id)] id: UVec3, + #[spirv(storage_buffer, descriptor_set = 0, binding = 0)] output: &mut [Option; 64], +) { + let index = id.x as usize; + output[index] = index.fizzbuzz(); +}