google / Graphicsfuzz
Licence: apache-2.0
A testing framework for automatically finding and simplifying bugs in graphics shader compilers.
Stars: ✭ 448
Programming Languages
java
68154 projects - #9 most used programming language
Projects that are alternatives of or similar to Graphicsfuzz
Pmtech
Lightweight, multi-platform, data-oriented game engine.
Stars: ✭ 478 (+6.7%)
Mutual labels: opengl, glsl, vulkan
Crossshader
⚔️ A tool for cross compiling shaders. Convert between GLSL, HLSL, Metal Shader Language, or older versions of GLSL.
Stars: ✭ 113 (-74.78%)
Mutual labels: opengl, glsl, vulkan
Shaderconductor
ShaderConductor is a tool designed for cross-compiling HLSL to other shading languages
Stars: ✭ 1,146 (+155.8%)
Mutual labels: opengl, glsl, vulkan
Shadergen
Proof-of-concept library for generating HLSL, GLSL, and Metal shader code from C#,
Stars: ✭ 395 (-11.83%)
Mutual labels: opengl, glsl, vulkan
3d Game Shaders For Beginners
🎮 A step-by-step guide to implementing SSAO, depth of field, lighting, normal mapping, and more for your 3D game.
Stars: ✭ 11,698 (+2511.16%)
Mutual labels: opengl, glsl, vulkan
Reshade
A generic post-processing injector for games and video software.
Stars: ✭ 2,285 (+410.04%)
Mutual labels: opengl, glsl, vulkan
Bansheeengine
Modern C++14 game engine with Vulkan support, fully featured editor and C# scripting
Stars: ✭ 2,906 (+548.66%)
Mutual labels: opengl, vulkan
Lwjgl3
LWJGL is a Java library that enables cross-platform access to popular native APIs useful in the development of graphics (OpenGL, Vulkan), audio (OpenAL), parallel computing (OpenCL, CUDA) and XR (OpenVR, LibOVR) applications.
Stars: ✭ 3,540 (+690.18%)
Mutual labels: opengl, vulkan
Colormap Shaders
A collection of shaders to draw color maps.
Stars: ✭ 315 (-29.69%)
Mutual labels: opengl, glsl
Rspirv
Rust implementation of SPIR-V module processing functionalities
Stars: ✭ 332 (-25.89%)
Mutual labels: opengl, vulkan
Vk Gl Cts
Khronos Vulkan, OpenGL, and OpenGL ES Conformance Tests
Stars: ✭ 324 (-27.68%)
Mutual labels: opengl, vulkan
Magnum
Lightweight and modular C++11 graphics middleware for games and data visualization
Stars: ✭ 3,728 (+732.14%)
Mutual labels: opengl, vulkan
Fiber2d
Cross-platform 2D Game Engine in pure Swift
Stars: ✭ 415 (-7.37%)
Mutual labels: opengl, vulkan
Nazaraengine
Nazara Engine is a fast, complete, cross-platform, object-oriented API which can help you in your daily developper life.
Stars: ✭ 279 (-37.72%)
Mutual labels: opengl, vulkan
Ashes
Drop-in replacement for Vulkan shared library, for older hardware compatibility
Stars: ✭ 278 (-37.95%)
Mutual labels: opengl, vulkan
Ffmpeg Gl Transition
FFmpeg filter for applying GLSL transitions between video streams.
Stars: ✭ 335 (-25.22%)
Mutual labels: opengl, glsl
GraphicsFuzz
GraphicsFuzz is a set of tools for testing shader compilers
GraphicsFuzz provides tools for automatically finding and simplifying bugs in graphics drivers, specifically graphics shader compilers. The glsl-fuzz and glsl-reduce tools manipulate GLSL shaders, targeting SPIR-V compilers via translation. The spirv-fuzz and spirv-reduce tools directly manipulate SPIR-V shaders.
Download and run
Follow the gfauto README. The gfauto command line tool is the recommended way of automatically downloading and running our fuzzers to test Vulkan drivers in a "push-button" fashion with minimal interaction. See below if you want to read about individual tools and/or use them as standalone command line tools.
Tool documentation
- gfauto: the recommended way of automatically downloading and running our fuzzers to test Vulkan drivers in a "push-button" fashion with minimal interaction
- glsl-fuzz: a family of tools for testing GLSL shader compilers using randomized metamorphic testing
- glsl-reduce: a stand-alone GLSL shader reducer
- spirv-fuzz: a stand-alone SPIR-V shader fuzzer and shrinker that uses randomized metamorphic testing
- spirv-reduce: a stand-alone SPIR-V shader reducer
glsl-fuzz
- The glsl-fuzz tools are developed in this repo
- How it works (high-level): metamorphic testing using glsl-fuzz
- glsl-fuzz walkthrough
- glsl-generate manual
- glsl-reduce manual (for reducing fuzzed shaders)
- Pre-built binaries are available on the GitHub releases page of this repo
- Developer documentation with build instructions
glsl-reduce
- glsl-reduce is developed in this repo
- Introduction: my shader is being weird, now what?
- glsl-reduce walkthrough
- glsl-reduce manual
- Pre-built binaries are available with glsl-fuzz on the GitHub releases page of this repo
spirv-fuzz
- spirv-fuzz is developed in the SPIRV-Tools repo
- Nightly builds of SPIRV-Tools
- Try our spirv-fuzz walkthrough that can be run from your browser
spirv-reduce
- spirv-reduce is developed in the SPIRV-Tools repo
- Nightly builds of SPIRV-Tools
- Try our spirv-fuzz walkthrough (includes use of spirv-reduce) that can be run from your browser
Contribute
Further reading
GraphicsFuzz blog posts:
- 17 January 2018: Samsung Galaxy S8 (ARM, Qualcomm)
- 22 January 2018: Nvidia Shield TV, Tablet (Nvidia)
- 25 January 2018: Google Pixel Phone 1, 2 (Qualcomm)
- 5 February 2018: Google Nexus Player (Imagination Technologies)
- 15 February 2018: Huawei Honor 9, 9 lite, 10 (ARM)
- 22 February 2018: Apple iPhone 6, 7, 8, X (Apple, Imagination Technologies)
- 12 March 2018: Samsung Galaxy S6, S7 (ARM, Qualcomm)
- 22 May 2018: Samsung Galaxy S9 (ARM, Qualcomm)
Academic research project blog posts:
- 30 November 2016: Intro
- 1 December 2016: AMD
- 7 December 2016: Apple
- 12 December 2016: ARM
- 15 December 2016: Imagination Technologies
- 20 December 2016: Intel
- 25 January 2017: Nvidia
- 1 February 2017: Qualcomm
Academic publications:
- OOPSLA 2017: Automated Testing of Graphics Shader Compilers
- Metamorphic Testing Workshop at ICSE 2016: Metamorphic Testing for (Graphics) Compilers
This is not an officially supported Google product.
Note that the project description data, including the texts, logos, images, and/or trademarks,
for each open source project belongs to its rightful owner.
If you wish to add or remove any projects, please contact us at [email protected].